不允许从数据类型varchar到varbinary(max)的隐式转换c#

时间:2017-04-26 07:16:52

标签: c# sql-server

我正在尝试将byte []插入到sql server中的varbinary(MAX)列中 以下是我的代码

SqlCommand cmd = new SqlCommand("Insert Into Details values ('@name','@Biometric','@TemplateBytesLength','@date') ", con);
cmd.Parameters.AddWithValue("name", txt_name.Text.Trim());
SqlParameter sqlParam = cmd.Parameters.AddWithValue("@Biometric", bTemplateDataOne);
sqlParam.DbType = DbType.Binary;
//cmd.Parameters.AddWithValue("Biometric", bTemplateDataOne);
cmd.Parameters.AddWithValue("TemplateBytesLength", bTemplateDataOne.Length);
cmd.Parameters.AddWithValue("date", DateTime.Now);

cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
con.Close();

bTemplateDataOne是一个byte []

byte[] bTemplateDataOne;

我得到的错误就是这个
不允许从数据类型varchar到varbinary(max)的隐式转换。使用CONVERT函数运行此查询。
为什么它不允许将数据插入SQL表 enter image description here

1 个答案:

答案 0 :(得分:1)

我认为更好的解决方案是使用SqlParameter:

cmd.Parameters.Add("@Biometric", SqlDbType.VarBinary, 8000).Value = bTemplateDataOne;