c#中SQL参数传入空值出错误怎么办

  介绍

小编给大家分享一下c#中SQL参数传入空值出错误怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

c#中的空与SQL中的零是不一样的,SQL中零用c#的表示出来就是DBNull。价值。

注意:。

下面我们看个例子:

1 SqlCommand cmd=new SqlCommand(“插入学生价值观(@StuName, @StuAge)“;康涅狄格州);2 cmd.parameters.add (“@StuName",stuName); 3 cmd.parameters.add (“@StuAge"stuAge); 4 cmd.ExecuteNonQuery ();

上述代码咋看冇问题,其实当stuName或stuAge的值为null时,就会抛出异常。那怎么解决呢?
解决方案:当stuName或stuAge的值为null时,传入DBNull.Value。下面在公共类里写一个静态的通用方法对传入的参数值进行判断,为空则返回DBNull。值,否则返回原值。

1公共静态对象SqlNull(对象obj) 2{3如果4 (obj==null) {5 DBNull.Value返回;其他6}7 8{9返回obj; 10}   11}

调用上述方法后的代码如下:

1 SqlCommand cmd=new SqlCommand(“插入学生价值观(@StuName, @StuAge)“;康涅狄格州);2 cmd.parameters.add (“@StuName"SqlNull (stuName)); 3 cmd.parameters.add (“@StuAge"SqlNull (stuAge)); 4 cmd.ExecuteNonQuery ();

另外,如果参数值来源于控件(如文本框)的值,则传入的参数值不会为零(因为控件的值不会为空,即便没值也是““),如果想实现当控件的值为““(如文本框中没有输入字符)时,数据表字段值为null,只需对SqlNull方法稍作修改:

1公共静态对象SqlNull(对象obj) 2{3如果(obj==null | | obj.ToString ()==啊? 4 {5 DBNull.Value返回;其他6}7 8{9返回obj; 10}   11}

延伸:

传SQL参数还可以传参数组,如下:

1 SqlParameter[]及parm=new SqlParameter[] 2{3新SqlParameter (“@StuName", SqlNull (stuName)), 4个新SqlParameter (“@StuAge", SqlNull (stuAge))   5}6如果(改!=null) 7 {8 cmd.Parameters.AddRange(改);   9}10 cmd.ExecuteNonQuery ();

注意:,(改!=)。

以上是c#中SQL参数传入空值出错误怎么办的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

c#中SQL参数传入空值出错误怎么办