2009-04-01 2 views
11

私はDataTable resultSet;を持っています - 私はnullのフィールドをチェックしようとしていますが、 '{}'(空集合?)オブジェクトを返します。 「{}」に関する検索では、適切な解決策が得られていません。C#DataTable ItemArrayは '{}'を返します。どのようにnull値をテストできますか?

if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == null) 
{ 
    //never reaches here 
} 

注:代わりにColumns.IndexOf()のint型のインデックスを使用していない問題

この

は「fk_id」フィールドがnullの場合に期待どおりに動作しないコードです。

はまた、 "{}" C#で他のいくつかの名前がありますか?データセットは、「データベースNULL」値を表すためにnullを使用しないため

if (resultSet.Rows[0].IsNull("fk_id")) 

nullに対するあなたの比較はおそらく失敗している:データセットにはDBNullの列を確認するには

答えて

18

、あなたはIsNullメソッドを使用することができます - 彼らはDBNull.Valueを使用します。あなたは、あなたがそれを提示してきたように動作するようにあなたのコードが必要な場合は、これを試してみてください。

if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == DBNull.Value) 
+0

グレートは完全に「DBNull.Valueの」忘れてしまった、あなたに感謝 - それは –

+0

を、私は、データを操作してきたので、しばらくして設定しています彼らはそれがこのように設計だけではなくヌルを使用して、なぜ私が疑問に思いますか? –

+2

@ k.rob Nullable が.NET 1.0に存在しなかったので、 "null"のInt32値を表す方法はありませんでした。 –

-2
try 
{ 
    if (DT.Rows[0][0] != null) 
    {  
     //your code 
    }  
}  
catch  
{  
    MessageBox.Show("AUTHANICATION FAILED.");  
} 
-2

使用してください:

dataTable.Select("FieldName is NULL") 

をこれはあなたのフィールド名の列にNULL値を持つでDataRowを与えます。

関連する問題