Мой код C# работает с базой данных OLE. В таблице под названием ProjectParty Я сохраняю значение изображения в байтах через WinForm. При этом у меня есть другая форма, которая должна позволить пользователям обновлять значения таблицы, включая picture.
Я пытаюсь использовать следующий код для обновления пользовательских изменений обратно в таблицу.Как обновить значение PictureBox в базе данных OLE с помощью C#
private void btnSaveChanges_Click(object sender, EventArgs e)
{
OleDbConnection oleDbConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=HesabKetab.accdb;Persist Security Info=False");
OleDbCommand oleDbCmd = new OleDbCommand("UPDATE ProjectParty SET [email protected], [email protected], [email protected], [email protected], [email protected], [email protected] "
+ "WHERE [email protected]",oleDbConn);
//add parameters
oleDbCmd.Parameters.AddWithValue("@title", txtInstTitle.Text);
oleDbCmd.Parameters.AddWithValue("@manager", txtInstManager.Text);
oleDbCmd.Parameters.AddWithValue("@tel", txtOfficePhone.Text);
oleDbCmd.Parameters.AddWithValue("@mobile", txtMobileNo.Text);
oleDbCmd.Parameters.AddWithValue("@address", txtAddress.Text);
oleDbCmd.Parameters.AddWithValue("@id", Convert.ToInt32(comboInstID.SelectedValue.ToString()));
byte[] picByte = null;
if(pictureBoxInstLogo.Image!=DBNull.Value){
picByte= (byte[])pictureBoxInstLogo.Image;
}
oleDbCmd.Parameters.AddWithValue("@picture", picByte);
try
{
oleDbConn.Open();
oleDbCmd.ExecuteNonQuery();
}
catch (Exception ex) { MessageBox.Show(ex.Message, "خطای دیتابیس", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); }
}
Я получаю ошибки синтаксиса,
Оператор! = Не может быть применен к операндам типа System.Drawing.Image и System.DBNull.
и
Не удается неявно преобразовать System.Drawing.Image в байт [].
Как проверить, имеет ли изображение picturebox изображение и, если да, сохранить его содержимое обратно в базу данных?
picturebox был загружен из базы данных. у него все еще есть изображение? Мне кажется, что воображение предназначено для URL-адресов, таких как c: \ img.jpg. – JasonStack
Я не использовал изображение, которое использует базу данных для изображений, хотя я бы отлаживал код и видел, что такое ImageLocation, когда изображение загружено из базы данных. – horHAY