データセルがnullになることは、問題の原因にはなり得ないと思います。列が存在しないか、その他のエラーが発生したか、DataRow自体がnullである可能性があり、それを処理する必要があります。例外を見てください-「爆破するようです」はあなたの問題の有効な説明ではありません。
以下はそれを説明しますが、他のみんなのためにタイトルからの質問にも答えます。
列の値がnullの場合、オブジェクトSystem.DBNull
が返され.ToString()
、空の文字列が返されますが、(string)
またはas string
が返されnull
ます。
したがって、返されたアイテムをチェックすることは意味==null
がありません。これは、に評価されないためtrue
です。
- 結果として空の文字列を受け入れる場合、コードはすでに最適であり、
DBNull
ケースを処理する必要はありません。
- 取得したい場合は
null
、に変更.ToString()
してas string
ください。
- 他の方法で処理する場合は、の後にターゲット変数を使用
if (dr.IsNull("FirstName"))
または実行します。==null
as string