C#中DBNULL是什么-創(chuàng)新互聯(lián)

這篇文章主要介紹了C#中DBNULL是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

點(diǎn)軍網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),點(diǎn)軍網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為點(diǎn)軍上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的點(diǎn)軍做網(wǎng)站的公司定做!

1   概述

如下例子,你覺(jué)得有什么問(wèn)題?如你能很快的找出問(wèn)題,并且解決它,那么你可以跳過(guò)本篇文章,謝謝~~。

1 List<Base_Employee> ltPI = new List<Base_Employee>();
2 DataTable dt = GetBase_UserInfoToDataTable();
3 for (int i = 0; i < dt.Rows.Count; i++)
4    {
5          Base_Employee base_Employee= new Base_Employee();
6          base_Employee.EmployeeId= dt.Rows[i]["EmployeeId"].ToString();//EmployeeId為string類型
7          base_Employee.Age =(int)dt.Rows[i]["Age"];//Age為int類型
8          base_Employee.GraduationDate = (DateTime)dt.Rows[i]["GraduationDate"];//GraduationDate 為DateTime類型
9    }

想一分鐘,OK,如果沒(méi)想出來(lái),可以往下看,下圖標(biāo)注處即為問(wèn)題處。

C#中DBNULL是什么

ok,本篇文章就是來(lái)解決該問(wèn)題的。也就是接下來(lái)要與大家分享的System.DBNULL類型

2   內(nèi)容分享

2.1  在.NET中的,常用的基本數(shù)據(jù)類型

int,string,char等是大家比較熟悉的基本數(shù)據(jù)類型,但是大部分人都應(yīng)該對(duì)System.DBNull比較陌生,然而,它又是解決如上問(wèn)題的一大思路。

2.2  SqlServer中的常用數(shù)據(jù)類型

varchar,nvarchar,int,bit,decimal,datetime等,基本在與.net中的數(shù)據(jù)類型一一對(duì)應(yīng)(varchar和nvarchar均對(duì)應(yīng).net中的string類型)

2.3  SqlServer中的常用數(shù)據(jù)類型的初始值

在.net中,當(dāng)我們定義一個(gè)變量時(shí),如果沒(méi)給其賦初始值,那么系統(tǒng)會(huì)默認(rèn)初始值,如int 類型默認(rèn)為0,string類型默認(rèn)為string.Empty,一般情況,不同類型的默認(rèn)初始值是不同的;但是,在SqlServer中,幾乎所有變量類型的初始值為NULL,也就要么為用戶自定義的值,要么為系統(tǒng)默認(rèn)的值NUL。問(wèn)題的關(guān)鍵就在這,以int類型為例,當(dāng)在數(shù)據(jù)庫(kù)中,我們沒(méi)有給INT賦值時(shí),其默認(rèn)值為NULL,當(dāng)把這個(gè)值賦給.net中的整形變量時(shí),就會(huì)引發(fā)異常。

C#中DBNULL是什么

2.4  System.DBNull是什么?

DBNull是一個(gè)類,繼承Object,其實(shí)例為DBNull.Value,相當(dāng)于數(shù)據(jù)中NULL值。

2.5  為什么 DBNull可以表示其他數(shù)據(jù)類型?

在數(shù)據(jù)庫(kù)中,數(shù)據(jù)存儲(chǔ)以object來(lái)存儲(chǔ)的。

2.6 如何解決如上問(wèn)題

加條件判斷

可以用string類型是否為空,或DBNull是否等于NULL來(lái)判斷

 1 List<Base_Employee> ltPI = new List<Base_Employee>(); 
 2 DataTable dt = GetBase_UserInfoToDataTable(); 
 3 for (int i = 0; i < dt.Rows.Count; i++) 
 4    { 
 5          Base_Employee base_Employee= new Base_Employee(); 
 6          base_Employee.EmployeeId= dt.Rows[i]["EmployeeId"].ToString();//EmployeeId為string類型 
 7          //base_Employee.Age =(int)dt.Rows[i]["Age"];//Age為int類型 
 8           if (dt.Rows[i]["Age"]!=System.DBNull.Value) 
 9                 {
 10                     base_Employee.Age = int.Parse(dt.Rows[i]["Age"].ToString());
 11                     //base_Employee.Age = (int)dt.Rows[i]["Age"];//拆箱
 12                     //base_Employee.Age =Convert.ToInt16( dt.Rows[i]["Age"]);
 13                 }
 14          //base_Employee.GraduationDate = (DateTime)dt.Rows[i]["GraduationDate"];//GraduationDate 為DateTime類型
 15         if (dt.Rows[i]["GraduationDate"].ToString()!="")
 16                 {
 17                     base_Employee.GraduationDate = Convert.ToDateTime(dt.Rows[i]["GraduationDate"]);
 18                     base_Employee.GraduationDate = (DateTime)dt.Rows[i]["GraduationDate"];
 19                 }
 20    }

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C#中DBNULL是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計(jì)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享標(biāo)題:C#中DBNULL是什么-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://bm7419.com/article26/dssgcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、域名注冊(cè)網(wǎng)站營(yíng)銷、手機(jī)網(wǎng)站建設(shè)、服務(wù)器托管外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)