2

重複の可能性:
DBNull のポイントは何ですか?

.NET の冒険を始めて以来、私は常に 1 つの質問を自問してきました。

なぜ DBNull 型が必要なのですか? 単純な null 参照では不十分ですか?

MSDN は、DBNull は「存在しない値を表す」と述べています。論理的な観点から、この一文は null 参照が使用できない理由を説明しています。なぜなら、それは null 参照であり、値の欠如ではないからです。しかし、多くのトラブルを引き起こすタイプを導入するだけで十分ですか?

ところで:誰かが弁護のために何か言いたいことがあれば、DBNull私は本当に感謝します.

4

4 に答える 4

8

DBNullは、.Net フレームワークの初期バージョンから存在しています。

Null 許容値型 ( Nullable<T>) は、フレームワークのバージョン 2 以降にのみ存在します。

バージョン 2 より前では、たとえばデータベースから null int 値を受け取ることができたので、それをどのように表現することを提案しますか? 次に、一貫性を保つために、値または参照型に変換されるかどうかに関係なく、すべての DB null を表すために同じものが使用されました。

于 2011-06-21T08:56:59.503 に答える
2

DBNull.Valueデータベースで「NULL」を表します。「ヌル」と同じではありません。

于 2011-06-21T08:57:31.947 に答える
1

データベースから返された値がnullかどうかを検出できるようにするために必要です。通常、Convert.IsDBNullチェックを実行するために使用されます。

DBNullタイプがプログラミング値と同じではありませんnull

于 2011-06-21T08:57:09.713 に答える
0

C# の null は SQL コンテキストの NULL とは異なります。C# の SQL NULL は文字列としてDbNull.Valueではなく、意味のあるものとして公開されます。そうでない場合、どのように db null をチェックしますか? 文字列の比較"NULL"は同じではなかったでしょう...

于 2011-06-21T08:56:46.393 に答える