欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當前位置:主頁 > 軟件編程 > C#教程 >

C#中SQL參數(shù)傳入空值報錯解決方案

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊: 次

C#中的null與SQL中的NULL是不一樣的,SQL中的NULL用C#表示出來就是DBNull.Value。

注意:SQL參數(shù)是不能接受C#的null值的,傳入null就會報錯。

下面我們看個例子:

 SqlCommand cmd=new SqlCommand("Insert into Student values(@StuName,@StuAge)" ,conn);
 cmd.parameters.add("@StuName" ,stuName);
 cmd.parameters.add("@StuAge" ,stuAge);
 cmd.ExecuteNonQuery();

上述代碼咋看冇問題,其實當stuName或stuAge的值為null時,就會拋出異常。那怎么解決呢?

解決方案:當stuName或stuAge的值為null時,傳入DBNull.Value。下面在公共類里寫一個靜態(tài)的通用方法對傳入的參數(shù)值進行判斷,為null則返回DBNull.Value,否則返回原值。

public static object SqlNull(object obj)
 {
  if(obj == null)
  {
   return DBNull.Value;
  }
  else
  {
   return obj;
  }  
 }

調(diào)用上述方法后的代碼如下:

 SqlCommand cmd=new SqlCommand("Insert into Student values(@StuName,@StuAge)" ,conn);
 cmd.parameters.add("@StuName" ,SqlNull(stuName));
 cmd.parameters.add("@StuAge" ,SqlNull(stuAge));
 cmd.ExecuteNonQuery();

另外,如果參數(shù)值來源于控件(如文本框)的值,則傳入的參數(shù)值不會為null(因為控件的值不會為null,即便沒值也是""),如果想實現(xiàn)當控件的值為""(如文本框中沒有輸入字符)時,數(shù)據(jù)表字段值為NULL,只需對SqlNull方法稍作修改:

 public static object SqlNull(object obj)
 {
   if(obj == null || obj.ToString() == "")
   {
    return DBNull.Value;
   }
   else
   {
    return obj;
  }  
 }

延伸:

傳SQL參數(shù)還可以傳參數(shù)組,如下:

 SqlParameter[] parm = new SqlParameter[]
 {
  new SqlParameter("@StuName", SqlNull(stuName)),
  new SqlParameter("@StuAge", SqlNull(stuAge)) 
 }
 if(parm != null)
 {
  cmd.Parameters.AddRange(parm);  
 }
 cmd.ExecuteNonQuery();

注意:new SqlParameter(參數(shù)名, 參數(shù)值)里的參數(shù)值同樣不接受null值,且parm參數(shù)組也不接受null, if(parm != null) 的判斷不能少。

以上所述是小編給大家介紹的C#中SQL參數(shù)傳入空值報錯解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對我們網(wǎng)站的支持!

上一篇:C#動態(tài)創(chuàng)建button按鈕的方法實例詳解

欄    目:C#教程

下一篇:基于C#實現(xiàn)俄羅斯方塊游戲

本文標題:C#中SQL參數(shù)傳入空值報錯解決方案

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5689.html

網(wǎng)頁制作CMS教程網(wǎng)絡編程軟件編程腳本語言數(shù)據(jù)庫服務器

如果侵犯了您的權利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權所有