从数据类型为varchar隐式转换为VARBINARY(最大)是不允许的C#
问题描述:
我试图插入的byte []到VARBINARY(MAX),在SQL Server列
下面是我的代码
从数据类型为varchar隐式转换为VARBINARY(最大)是不允许的C#
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[] bTemplateDataOne;
我收到的错误是从数据类型为varchar此
隐式转换为VARBINARY(最大)是不允许的。使用CONVERT函数来运行此查询。
为什么它不允许将数据插入到SQL表
答
我认为更好的解决方案将使用的SqlParameter这样的:
cmd.Parameters.Add("@Biometric", SqlDbType.VarBinary, 8000).Value = bTemplateDataOne;
节目表模式 –
你把你的参数名称中'''引号 - 意味着你试图插入文字*字符串*,比如''@ name''而不是'@ name'参数提供的任何东西。 –
这是“bTemplateDataOne”一个字节吗?看到它 –