Как я могу...сохранить изображение в базе данных n SQL с помощью C# и SQL
У меня есть форма windows, которая получает входные данные от пользователя, а затем сохраняет данные в базе данных sql. Один из фейлов-это picturebox. Я хочу сохранить изображение в двоичном виде, а затем сохранить его вместе с другими значениями в базе данных sql. Мой код для кнопки Сохранить выглядит следующим образом:
SqlConnection cs = new SqlConnection ("Data Source=LAPTOP-QB470LUM\\SQLEXPRESS01;Initial Catalog=AssertManagement;Integrated Security=True"); SqlDataAdapter da = new SqlDataAdapter(); da.InsertCommand = new SqlCommand ("Insert into Road_Sign values (@sign_id, @year_made, @route, @section, @date_intalled, @expiry_date, @position, @condition, @chainage_from, @chainage_to, @picture)",cs); da.InsertCommand.Parameters.Add("@sign_id", SqlDbType.Text).Value = txtSignId.Text; da.InsertCommand.Parameters.Add("@year_made", SqlDbType.Date).Value =dtpYearMade.Value; da.InsertCommand.Parameters.Add("@route", SqlDbType.Text).Value = txtRoute.Text; da.InsertCommand.Parameters.Add("@section", SqlDbType.Text).Value = txtSection.Text; da.InsertCommand.Parameters.Add("@date_intalled", SqlDbType.Date).Value = dtpDateInstalled.Value; da.InsertCommand.Parameters.Add("@expiry_date", SqlDbType.Date).Value = dtpExpiryDate.Value; if (radioButton1.Checked == true) { da.InsertCommand.Parameters.Add("@position", SqlDbType.Text).Value = radioButton1.Checked; } else if (radioButton2.Checked == true) { da.InsertCommand.Parameters.Add("@position", SqlDbType.Text).Value = radioButton2.Checked; } else { da.InsertCommand.Parameters.Add("@position", SqlDbType.Text).Value = radioButton3.Checked; } da.InsertCommand.Parameters.Add("@condition", SqlDbType.Text).Value = txtCondition.Text; da.InsertCommand.Parameters.Add("@chainage_from", SqlDbType.Text).Value = txtChainfrom.Text; da.InsertCommand.Parameters.Add("@chainage_to", SqlDbType.Text).Value = txtChainTo.Text; da.InsertCommand.Parameters.Add("@picture", SqlDbType.VarBinary).Value = DBNull.Value; cs.Open(); da.InsertCommand.ExecuteNonQuery(); cs.Close(); btnSave.Enabled = false; MessageBox.Show("Data Saved Successfully");
При отладке я получаю следующую ошибку: столкновение типов операндов: текст не совместим с датой.
Тип данных столбца в SQL картина является
varbinary
.Есть ли ошибка в моем коде, которую я не улавливаю? Или мне нужно изменить свой подход к проекту? Пожалуйста, помогите.
Что я уже пробовал:
Когда я комментирую это
da.InsertComand.ExecuteNonQuery();
он идет, чтобы отключить кнопку сохранения и отображает окно сообщения. Очевидно, что это не помогает, потому что данные не сохраняются.
Richard Deeming
(Перешел к решению)
phil.o
Я все еще удивляюсь, почему вы не представили это в качестве решения :)
Richard Deeming
Сделано. :)