介绍
小编给大家分享一下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参数传入空值出错误怎么办的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!