很多人對(duì)數(shù)據(jù)庫(kù)中的“空值”概念理解不透而造成在使用時(shí)也蒙頭轉(zhuǎn)向。在數(shù)據(jù)庫(kù)中,空值不等于“空字符串”和“0”值,也不代表空字符。它是一個(gè)沒有任何意義,目前不清楚的值,我們用“空值”來(lái)表達(dá)。實(shí)際上,在SQL Server數(shù)據(jù)庫(kù)中真正的空值顯示為<null>。
在.NET中通過編程新建的一個(gè)表中所有數(shù)據(jù)皆顯示為<NULL>,手動(dòng)添加并刪除文字后會(huì)變成空白(即空字符串)。
(1)、真正的空值,也就是“沒有輸入的值”,可以出現(xiàn)在大多數(shù)類型的字段中(如果沒有別的約束條件),SQL server中表示為null,顯示為<NULL>,手工在SQL server企業(yè)管理器中輸入的方法是按Ctrl+0。它在.NET中對(duì)應(yīng)System.DBNull.Value。在T-SQLming令中,判斷一個(gè)值是不是空值,要用“is null”而不是“= null”;處理空值有個(gè)ISNULL函數(shù),它使用指定的值替換null。用ADO.NET從數(shù)據(jù)庫(kù)得到的空值無(wú)法自動(dòng)轉(zhuǎn)化為空字符串或Nothing,須手動(dòng)檢測(cè):如果得到System.DBNull.Value,則賦給數(shù)據(jù)對(duì)象Nothing或其它自定義的有意義的值。
2、空字符串(零長(zhǎng)度字符串),只出現(xiàn)在字符串類型(如nvarchar)的字段中,SQL server中表示為'',顯示為空白,手工在SQL server企業(yè)管理器中輸入時(shí)清空一個(gè)單元格即可。它在.NET中對(duì)應(yīng)System.String.Empty,也就是我們常用的""。在T-SQLming令中處理空字符串和處理一般的字符串沒什么區(qū)別。用ADO.NET從數(shù)據(jù)庫(kù)得到的空字符串也和一般的字符串沒什么區(qū)別。
新聞熱點(diǎn)
疑難解答
圖片精選