DateTime列を持つテーブルがあり、列にNULL値を含めることができます
ここで、ODBC接続を使用してデータベースに接続し、値を.net/c#のDataTableに取得します。
私は行くことでNULLをチェックすることができます
if(String.IsNullOrEmpty(table.rows[0][0].ToString())
{
//Whatever I want to do
}
String.IsNullOrEmptyは、null値をチェックする正しい方法です。
オブジェクトを文字列に変換せずに DBNull.Value.Equals を使用します。
以下に例を示します。
if (! DBNull.Value.Equals(row[fieldName]))
{
//not null
}
else
{
//null
}
DataRow.IsNullを使用するだけです。 列インデックス、列名、またはDataColumnオブジェクトをパラメーターとして。
列インデックスを使用した例:
if (table.rows[0].IsNull(0))
{
//Whatever I want to do
}
また、この関数はIsNull
と呼ばれますが、実際にはDbNull
(これはまさに必要なもの)と比較されます。
DbNullを確認したいが、DataRowがない場合はどうなりますか? Convert.IsDBNull を使用します。
System.Convert.IsDbNull][1](table.rows[0][0]);
IIRC、(table.rows[0][0] == null)
は、DbNull.Value != null;
row.IsNull( "column")
EFを使用し、whileループでデータベース要素を読み取る場合、
using( var idr = connection, SP.......)
{
while(idr.read())
{
if(String.IsNullOrEmpty(idr["ColumnNameFromDB"].ToString())
//do something
}
}