我正在尝试使用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.
不是关于图像文件类型。它是关于字节数组,所以我不明白为什么它被标记为重复。