首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不允许从数据类型varchar到var二进制(Max)的隐式转换。

问不允许从数据类型varchar到var二进制(Max)的隐式转换。
EN

Stack Overflow用户
提问于 2017-04-26 07:16:51
回答 1查看 2.3K关注 0票数 0

我正在尝试将byte[]插入sql server中的varbinary(MAX)列中。

下面是我的代码

代码语言:javascript
复制
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[]

代码语言:javascript
复制
byte[] bTemplateDataOne;

我所犯的错误是

不允许从数据类型varchar隐式转换到var二进制文件(Max)。使用转换函数运行此查询。

不允许将数据插入SQL表的原因

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-26 07:31:49

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

代码语言:javascript
复制
cmd.Parameters.Add("@Biometric", SqlDbType.VarBinary, 8000).Value = bTemplateDataOne;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43627433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档