日期:2014-05-18  浏览次数:20834 次

C# 中带参数的insert语句当插入image类型为空值时报错
C# code


            strSQL="Insert Hr_BaseInfo(FEmpID,FEmpNo,FEmpName) values (1,'001','张三',@Image_byte) "
            string CnnStr = ClsDataOperer.GetString();
            SqlConnection sqlConn = new SqlConnection(CnnStr);
            sqlConn.Open();
            //创建SqlCommand对象
            SqlCommand command = new SqlCommand(strSQL, sqlConn);
            //调用文件流方法
            command.Parameters.Add("@Image_byte", SqlDbType.Image).Value = Image_byte;
            //执行添加
            int i = command.ExecuteNonQuery();



当Image_byte有值的时候运行正常,当Image_byte为null值时提示
被准备语句 '(@Image_byte image)delete Hr_BaseInfo where FEmpID=3 Insert Hr_B' 需要参数 @Image_byte,但未提供该参数。

------解决方案--------------------
探讨
Image_byte类型为byte[]

------解决方案--------------------
command.Parameters.Add("@Image_byte", SqlDbType.Image).Value = Image_byte==null?System.DBNull.Value:Image_byte;