c# 怎么把byte[]存入数据库,byte[]可以为null
如图我想把图片做二进制存入数据库,但是该字段是可以为null存入数据库的,但如果想图片中那样写,会有异常,该怎么实现存入byte[]为null的情况下,正常存到数据库呢?...
如图我想把图片做二进制存入数据库,但是该字段是可以为null存入数据库的,但如果想图片中那样写,会有异常,该怎么实现存入byte[]为null的情况下,正常存到数据库呢?
展开
1个回答
展开全部
判断下就好了,如果为null,就不插入该字段,但数据库要把该字段设为允许NULL。
追问
你这方法我知道,之前也想这样做来着,但是这样的话,相当于改sql语句,我想要的是不改sql语句,直接在参数这里判断。
追答
好吧,我会这样子做:
string cmdText = "insert into test(Name,ProfileImage) values(@Name,@ProfileImage)";
string name = "foo";
byte[] bytes = null;
SqlParameter[] sps = new SqlParameter[2];
sps[0] = new SqlParameter("@Name", name);
sps[1] = new SqlParameter("@ProfileImage",System.Data.SqlDbType.Image);
sps[1].Value = bytes == null ? DBNull.Value : null; // 我是说在这里判断
using (SqlConnection conn=new SqlConnection(connectionString)){
using (SqlCommand cmd=new SqlCommand(cmdText,conn)){
cmd.Parameters.AddRange(sps);
conn.Open();
cmd.ExecuteNonQuery();// Ok。
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询