2013-08-16 4 views
5

DataTableがあります。値を含む単純な選択行を実行しようとしています。LINQ DataTableからDataRowを選択します。

私のコード

var LoginDetails = from myRow in DTOperators.AsEnumerable() 
          where myRow.Field<string>(0) == UserName 
          select myRow; 

私は私が戻って空白のDataRowを取得し、このクエリを実行すると、文字列のユーザー名は、データテーブル

に位置0に行が存在するかどうかを確認しようとしています。

私は選択したい位置の周りで[]を使用しようとしました。

私が間違っていることを誰でも見ることができる人。

+0

例外はありますか? – Matten

+0

フィールドインデックスは正しいですか?私はあなたが0番の位置でチェックしたいと思っていますが、名前は入っていますか?私は単純なデータテーブルで試して、ポジション1をチェックして2レコードを返しました。 – Nilesh

+0

あなたは '=='を確認しています。 –

答えて

16

テーブルの右の列と比較してデータをチェックするかどうかを確認する必要があります。この細かい作業:

var DTOperators = new DataTable(); 
var UserName = "test"; 
DTOperators.Columns.Add("UserName", typeof(string)); 
DTOperators.Rows.Add("test1"); 
DTOperators.Rows.Add("test"); 
var LoginDetails = from myRow in DTOperators.AsEnumerable() 
        where myRow.Field<string>(0) == UserName 
        select myRow; 

私は1つのdatarowでEnumerableを取得しました。 また、columnNameによってデータを取得しようとする可能性があります。

var LoginDetails = DTOperators.Rows 
           .Cast<DataRow>() 
           .Where(x => x["UserName"] == UserName).ToList(); 
関連する問題