DataRow 型で次の拡張メソッドを使用しています。
public static string ColumnIsNull(this System.Data.DataRow row, string colName, string defaultValue = "")
{
string val = defaultValue;
if (row.Table.Columns.Contains(colName))
{
if (row[colName] != DBNull.Value)
{
val = row[colName]?.ToString();
}
}
return val;
}
利用方法:
MyControl.Text = MyDataTable.Rows[0].ColumnIsNull("MyColumn");
MyOtherControl.Text = MyDataTable.Rows[0].ColumnIsNull("AnotherCol", "Doh! I'm null");
最初に列の存在を確認しています。これは、クエリ結果のいずれにもその列の null 以外の値がない場合、DataTable オブジェクトはその列を提供することさえできないためです。