Я создал небольшое приложение WinForms (. Net 4.8, SQL Сервер 18). Теперь я хочу обновить изображение в моей базе данных. Для этого я создал этот метод:
public void UpdateBild(string picturepath, int id)
{
string bildupdate = string.Format("UPDATE {0} set bild = (SELECT BulkColumn FROM OPENROWSET(BULK N'@pic', SINGLE_BLOB) AS x) where persid = @id", Klassen.Data.Gettabellenname());
try
{
SqlVerb();
com.CommandText = bildupdate;
com.Parameters.AddWithValue("@pic", picturepath);
com.Parameters.AddWithValue("@id", id);
com.ExecuteNonQuery();
}
catch (SqlException sqex)
{
}
catch (Exception ex)
{
}
finally
{
DBVerbindung.DBVerb.scon.Close();
}
}
Путь к картинке будет установлен так из текстового поля:
picturepath = tbDateiPfad.Text;
, и он будет передан методу как:
DBVerbindung.SQLStatements upbild = new DBVerbindung.SQLStatements();
upbild.UpdateBild(picturepath, id);
Если метод выполняется, я получаю ошибку «Picture not found».
Я думаю, что есть проблема с путем к файлу, потому что, если я выполню инструкцию UPDATE непосредственно в базе данных с путь к файлу (копия из поиска по каталогу) работает нормально.
Итак, не могли бы вы мне помочь, как я могу передать путь к файлу из текстового поля в правильной форме параметру для запроса SQL.