SQL-插入映像有效,而更新映像无效

SQL-插入映像有效,而更新映像无效,sql,image,ms-access,datagridview,Sql,Image,Ms Access,Datagridview,我正在将图像以字节数组的形式保存到Access数据库中,这很有效。这是插入代码,其功能如下: imenikTableAdapter.Insert( txtName.Text, txtSurname.Text, txtPhone.Text, txtEmail.Text, (picFileName == "") ? null : File.R

我正在将图像以字节数组的形式保存到Access数据库中,这很有效。这是插入代码,其功能如下:

imenikTableAdapter.Insert(
                txtName.Text,
                txtSurname.Text,
                txtPhone.Text,
                txtEmail.Text,
                (picFileName == "") ? null : File.ReadAllBytes(picFileName));        
当我尝试更新记录时出现问题。为了调试该问题,我尝试使用相同的输入更新记录,如下所示:(编辑:我正在从DataGridView中的选定行读取数据-这可以忽略,因为数据与INSERT命令中使用的数据相同)

即使这个命令执行起来没有问题。更新DataGridView时,会弹出以下错误:

错误

我现在唯一的解决办法是删除条目并再次插入,而不是更新它。(当图像为空时,更新工作正常)


因此,我的问题是:为什么INSERT命令可以工作,而UPDATE命令不能,对图像使用相同的字节数组?

您不是使用两种不同的方法读取图像吗?不太清楚您的意思。。。在insert和update命令中,图像存储为相同的字节数组。我不认为读取数据与此问题有任何关系,因为DataGridView本身读取数据,而不是我。如果你是指我如何获取图像数据。。。当然-我使用了不同的方法,但我已经强调字节数组是相同的。调试时检查它们。
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);