无法从C#将inkPicture插入SQL Server数据库

时间:2016-10-18 06:14:09

标签: c# sql-server winforms

实际上,我正在开发一个Windows应用程序,我想添加inkPicture来捕获用户对数据库的签名。签名列数据类型为varbinary。问题是记录被添加到数据库,但它只显示为空。

这是我到目前为止所做的:

string con = "Data Source=SAIUNIFLOW;Initial Catalog=documentfollowup;Integrated Security=True";

byte[] saveInk = (byte[])axInkPicture1.Ink.Save(InkPersistenceFormat.IPF_GIF, InkPersistenceCompressionMode.IPCM_Default);

cmdDatabase = new SqlCommand();
cmdDatabase.Connection = conDatabase;

//  cmdDatabase.CommandText = "insert into manage (Signature) values(Singature); "; 
cmdDatabase.CommandText= "insert into manage (Signature)" + "values('" +  axInkPicture1 + "'); ";

cmdDatabase.Parameters.AddWithValue("@Signature", saveInk);

我正在使用平板电脑获取签名但是当我点击插入按钮时,我收到了该错误:

  

无法将空值插入列签名,表格不能   允许空值。

希望能帮我解决这个错误。

1 个答案:

答案 0 :(得分:1)

问题是您没有设置@Signature参数的值。并尝试设置参数的SqlDbType属性。

请改用:

cmdDatabase.CommandText= "insert into manage (Signature) values(@Signature);";
var signatureParam = cmdDatabase.Parameters.AddWithValue("@Signature", saveInk);
signatureParam.SqlDbType = SqlDbType.VarBinary;