powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вставка изображений в бд (ошибка)
7 сообщений из 7, страница 1 из 1
Вставка изображений в бд (ошибка)
    #37605376
Helbr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При выполнении запроса выдает ошибку: Параметризованный запрос "(@img varbinary(8000))INSERT INTO Kom (image) VALUES (@im" ожидает параметр "@img", который не был указан.
Что за параметр, где и как его указать или задать значение?
КодForm2 frm2 = new Form2();
frm2.ShowDialog();
string adres = frm2.text;

SqlConnection SqlConnection = new SqlConnection(@"Data Source=HOMSTER\SQLEXPRESS; Initial Catalog=SQLBase; Integrated Security=SSPI;");
SqlCommand SqlCommand = new SqlCommand("INSERT INTO Kom (image) VALUES (@img)", SqlConnection);
SqlParameter SqlParameter = new SqlParameter("@img", SqlDbType.VarBinary);
string FileName = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + adres;

Image Image = Image.FromFile(FileName);
MemoryStream MemoryStream = new MemoryStream();
Image.Save(MemoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
SqlCommand.Parameters.Add(SqlParameter);
SqlConnection.Open();

SqlCommand.ExecuteNonQuery(); <<строка ошибки>>

SqlConnection.Close();
MemoryStream.Dispose();
...
Рейтинг: 0 / 0
Вставка изображений в бд (ошибка)
    #37605411
Helbr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что за параметр я понял, но почему выводит сообщение об ошибке?
Какой тип следует записать в этой строке:
Часть кодаSqlParameter SqlParameter = new SqlParameter("@image", SqlDbType.Binary);
Ведь SqlDbType.Binary должен быть верным
...
Рейтинг: 0 / 0
Вставка изображений в бд (ошибка)
    #37605898
.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.
Гость
ты параметру значение где присваиваеш?
...
Рейтинг: 0 / 0
Вставка изображений в бд (ошибка)
    #37606192
Helbr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ни где.
Похоже я не правильно понял значение данного параметра, зачем все же нужны параметры VALUES и как, что присвоить @image?
...
Рейтинг: 0 / 0
Вставка изображений в бд (ошибка)
    #37606830
Helbr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного исправил код, теперь подсвечивается другая строка и выдает сообщение: В GDI+ возникла ошибка общего вида.
Что это значит и где я опять накасячил?
Код: Form2 frm2 = new Form2();
frm2.ShowDialog();
string adres = frm2.text;
byte[] image = new byte[255];

SqlConnection SqlConnection = new SqlConnection(@"Data Source=HELBR\SQLEXPRESS; Initial Catalog=SQLDataBase; Integrated Security=SSPI;");
SqlCommand SqlCommand = new SqlCommand("INSERT INTO Lokomotive (image) VALUES (@image)", SqlConnection);
SqlParameter SqlParameter = new SqlParameter("@image", SqlDbType.VarBinary);
string fileName = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "/"+@adres;
MemoryStream MemoryStream = new MemoryStream(image);
Image Image = Image.FromFile(fileName);

Image.Save(MemoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); <строка ошибки>

SqlParameter.Value = image;
SqlCommand.Parameters.Add(SqlParameter);
SqlConnection.Open();
SqlCommand.ExecuteNonQuery();
SqlConnection.Close();
MemoryStream.Dispose();
...
Рейтинг: 0 / 0
Вставка изображений в бд (ошибка)
    #37607142
brainproof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--MemoryStream MemoryStream = new MemoryStream(image);
--Image Image = Image.FromFile(fileName);
--Image.Save(MemoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); <строка ошибки>
--SqlParameter.Value = image;

Зачем присваивать SqlParameter.Value = image ? в sql нет типа image. Вам нужен массив байтов.
Ваша ошибка "В GDI+ возникла ошибка общего вида." может быть по следующим причинам
1) надо указать явное конвертирование в jpeg. (ищи это лучше)
2) возможен вариант файл открыт а ты пишешь в него к примеру. (мало вероятно в твоем случае)

советы по коду
1) используйте using
2) Image Image = Image.FromFile(fileName); никогда не обзывайте тип даных и имена переменых одинаково!
3) отправляйте в бд в качестве параметра не image а MemoryStream.ToArray(). Откройте мсдн и смотрите, что делает Image.Save
...
Рейтинг: 0 / 0
Вставка изображений в бд (ошибка)
    #37607873
Helbr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
brainproof,
спс за советы.
Ночью поработал над кодом все работает)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вставка изображений в бд (ошибка)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]