我将我的图像保存为Access数据库,作为字节数组,这是有效的。这是插入代码,功能正常:
imenikTableAdapter.Insert(
txtName.Text,
txtSurname.Text,
txtPhone.Text,
txtEmail.Text,
(picFileName == "") ? null : File.ReadAllBytes(picFileName));
当我尝试更新记录时出现问题。要调试问题,我尝试使用 SAME 输入更新记录,如下所示:(编辑:我正在阅读来自DataGridView中所选行的数据 - 这可以忽略,因为数据与INSERT命令中使用的数据相同)
txtName.Text = row.Cells[1].Value.ToString();
txtSurname.Text = row.Cells[2].Value.ToString();
txtPhone.Text = row.Cells[3].Value.ToString();
txtEmail.Text = row.Cells[4].Value.ToString();
byte[] imageBuffer = row.Cells[5].Value as byte[];
imenikTableAdapter.UpdateQuery(txtName.Text,
txtSurname.Text,
txtPhone.Text,
txtEmail.Text,
imageBuffer,
id);
即使此命令执行没有问题。当我更新DataGridView时,会弹出以下错误:
我现在唯一的解决方法是删除条目并再次插入,而不是更新它。 (当Image为NULL时,更新正常工作)
所以,我的问题是:为什么INSERT命令工作,而UPDATE没有,使用图像的SAME字节数组?