c# 怎么把byte[]存入数据库,byte[]可以为null

如图我想把图片做二进制存入数据库,但是该字段是可以为null存入数据库的,但如果想图片中那样写,会有异常,该怎么实现存入byte[]为null的情况下,正常存到数据库呢?

判断下就好了,如果为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。
      }
}

温馨提示:答案为网友推荐,仅供参考
相似回答