SQL-插入映像有效,而更新映像无效
我正在将图像以字节数组的形式保存到Access数据库中,这很有效。这是插入代码,其功能如下: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
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);