“插入到不能包含多值字段”错误,没有这样的字段

时间:2016-03-15 16:36:38

标签: c# ms-access oledb insert-into

我正在尝试使用OleDb提供程序将二进制数据插入到来自C#的Access中的附件类型字段中。

  

错误:   System.Data.OleDb.OleDbException:INSERT INTO查询不能在System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams,Object&)中包含多值field.at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)。 executeResult)位于System.Data.OleDb.OleDb.mand上的System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior,String)中的System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior,Object& executeResult)方法)位于SDKEnrollApp.Enroll.Run()

的System.Data.OleDb.OleDbCommand.ExecuteReader()处的System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)

查询代码:

com.CommandText = "INSERT INTO PersonFinger ([PersID], [FingerImage]) VALUES ('@PID', '@IMG')";
com.Parameters.AddWithValue("@PID", m_form.m_clientID);
com.Parameters.Add("@IMG", OleDbType.Binary,baImage.Length).Value = baImage;
dt = new DataTable();
dt.Load(com.ExecuteReader());

baImage是一个字节数组。 求你帮帮我。

更新

现在代码是:

com.CommandText = "INSERT INTO PersonFinger ([PersID], [FingerImage]) VALUES (@PID, @IMG)";
com.Parameters.AddWithValue("@PID", m_form.m_clientID);
com.Parameters.Add("@IMG", OleDbType.Binary).Value = baImage;
com.ExecuteNonQuery();

问题仍然存在。

我还尝试将字段类型更改为OLE对象而不是Attachment。在这种情况下,保存文件的大小始终为12.

不是关于图像文件类型。它是关于字节数组,所以我不明白为什么它被标记为重复。

0 个答案:

没有答案