2017-03-28 8 views
1

私は文字列を含む1つの列のみを持つデータテーブルを持っています。 DataTable.Select()メソッドを使用してDBNull.Valueを持つ行のコレクションを取得する最善の方法は何ですか?Selectステートメントを使用してデータテーブルからDBNull.Valueを持つ行を検索

DataTable dataTable = new DataTable("names"); 
DataColumn newColumn = new DataColumn("Name", System.Type.GetType("System.String") 
{ 
AllowDBNull = true 
}; 
DataRow row1 = dataTable.NewRow(); 
row1["Name"] = "John"; 
dataTable.Rows.Add(row1); 
DataRow row2 = dataTable.NewRow(); 
row2["Name"] = DBNull.Value; 
dataTable.Rows.Add(row2); 

私はdataTable.Select( "名前がnull")を試してみましたが、それがROW2を返しました。しかし、nullではなく、無効な参照を意味するNULLとDBNull.Valueが異なり、存在しない値を表すDBNull.Valueはありますか?

+1

[データテーブルにnull値があるかどうかをチェックする最良の方法](http://stackoverflow.com/questions/4604414/best-way-to-check-if-a-data) -table-has-a-null-value-in-it)である。または、特に 'Select()'を使ってください:http://stackoverflow.com/q/9324088/1132334 – dlatikay

答えて

1

多分何かのように:

var NullRows = dataTable.Select("[Name]=''"); 
1

用途:

var nullRows = dataTable.Select("[Name] is null"); 

別のオプションは、

var query = dataTable.AsEnumerable() 
    .Where(r => r.Field<string>("Name") == null); 

あなたDataTable

に列を追加することを確認しますLINQを使用することです
dataTable.Columns.Add(newColumn); 
+0

ありがとう。また、select文を使用するときにnullとDBNull.Valueが同じであるかどうかを明確にしてください。 –

+0

@KrishnaveniBujaranpally、はい。 – Habib

関連する問題