激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C# - C#中SQL參數(shù)傳入空值報(bào)錯(cuò)解決方案

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

2022-01-07 13:35邪心魔佛一頁書 C#

這篇文章主要介紹了C#中SQL參數(shù)傳入空值報(bào)錯(cuò)解決方案,需要的朋友可以參考下

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

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

下面我們看個(gè)例子:

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

上述代碼咋看冇問題,其實(shí)當(dāng)stuName或stuAge的值為null時(shí),就會(huì)拋出異常。那怎么解決呢?

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

?
1
2
3
4
5
6
7
8
9
10
11
public static object SqlNull(object obj)
 {
  if(obj == null)
  {
   return DBNull.Value;
  }
  else
  {
   return obj;
  
 }

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

?
1
2
3
4
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ù)值不會(huì)為null(因?yàn)榭丶闹挡粫?huì)為null,即便沒值也是""),如果想實(shí)現(xiàn)當(dāng)控件的值為""(如文本框中沒有輸入字符)時(shí),數(shù)據(jù)表字段值為NULL,只需對SqlNull方法稍作修改:

?
1
2
3
4
5
6
7
8
9
10
11
public static object SqlNull(object obj)
{
  if(obj == null || obj.ToString() == "")
  {
   return DBNull.Value;
  }
  else
  {
   return obj;
 
}

延伸:

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

?
1
2
3
4
5
6
7
8
9
10
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ù)傳入空值報(bào)錯(cuò)解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對服務(wù)器之家網(wǎng)站的支持!

原文鏈接:http://www.cnblogs.com/Scl891004X/archive/2017/06/08/6962113.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产羞羞网站 | 免费久久精品 | 91高清完整版在线观看 | wwwxxx免费视频| 爱唯侦察 国产合集 亚洲 | 最新中文字幕第一页视频 | 国产在线一区二区三区 | 国产一区视频免费观看 | 草草在线观看 | 31freehdxxxx欧美| 成人福利在线看 | 欧美高清第一页 | 黄网站在线免费 | 国产免费最爽的乱淫视频a 午夜精品久久久久久久99热浪潮 | 中文在线观看视频 | 中文字幕 亚洲一区 | 国产精品探花在线观看 | 337p日本欧洲亚洲大胆精蜜臀 | 欧美人人干 | 国产精品岛国久久久久久久 | 一级做a爱片性色毛片 | 国产精品久久久久永久免费 | 成人免费在线视频 | 97久久人人超碰caoprom | 欧美黄色一级片视频 | 12av毛片| 久久久国产精品网站 | 国产1区2区3区中文字幕 | 久久精品re | 日日操日日操 | 三人弄娇妻高潮3p视频 | 国产精品久久久久久久久久东京 | 在线成人免费网站 | 人人舔人人插 | 福利在线小视频 | 依人在线视频 | 欧美精品一区二区免费 | 九九热视频这里只有精品 | 欧美黄色大片免费观看 | 国产一区二区三区在线免费 | 精品亚洲综合 |