2011-10-27 110 views
3

當在SQL Server數據庫中修改數據,你可以使用System.DBNull.Valuenull來表示NULL值。這兩種方法都可以工作,並將設置適當的值爲NULL使用DBNull或null INSERT/UPDATE數據?

我的問題是 - 哪一個是最好的,爲什麼?是否有某些情況下應該使用一個替代另一個?

回答

2

System.DBNull.Value != null,並通過試驗驗證碼:

var result = (System.DBNull.Value == null); // this is always false 

我們可以看到,CLR也不會把他們以同樣的方式。從數據庫中檢索數據時,我們需要檢查DBNull.Value而不是null參考。

儘管我們使用INSERTUPDATE數據並不重要,但我傾向於堅持使用DBNull.Value以保證數據訪問代碼的一致性。

還有其他各種意見在這個問題C# Database Access: DBNull vs null

+0

相關的問題:)你的第一部分的心不是 - 伊夫已經ansered是我自己的問題Itself.'的是,哪一個是最好的,爲什麼? '(在插入模式下)? –

+1

這是有關的,因爲它建立了我的位置,這是自**讀它時,重要的**,你應該保持一致和**插入或更新時使用**。 – Yuck

+0

我聽說RDBMS類型有依賴關係..沒有? –

0

的DBNull是代表一個變種,而不是鍵入特定的。在一般情況下,我希望在你有一個需要強類型數據集並且必須將DBNull轉換爲「typed-NULL」的構造的任何地方都有性能問題。