-1
 var j = from c in User.USERs
                    where (c.USER_NAME.Equals(tempUserName))
                    select c;

これは私に空のシーケンスを与え続けます

どちらもユーザー入力とデータベースを比較する単なる文字列です

4

3 に答える 3

1

次のようにします。

var j = User.USERs.First(c => c.USER_NAME == tempUserName)

また

var j = User.USERs.Single(c => c.USER_NAME == tempUserName)

または、独自のクエリが提供する結果から j[0] を取得します。

PS - アイテムがクエリに一致しない場合、First または Single の両方が例外をスローします。


スペクトルを広げるには、次のようなことを試してください。

string userToSearchFor = tempUserName.Trim().ToLower();
var j = User.USERs.FirstOrDefault(c => c.USER_NAME.ToLower() == userToSearchFor);

if (j != null)
{ 
  //found something 
}
于 2012-12-13T17:33:04.093 に答える
0

私は次のようにします:

var result = User.USERs.SingleOrDefault(x => x.USER_NAME.Equals(tempUserName));
if (result != null)
{
    //do your thing
}   
于 2012-12-13T18:01:41.557 に答える
0

空のシーケンスを返している場合は、where 句が false と評価されます。最初にその問題を解決する必要がある場合は、どの SQL が生成されているかを確認してください。

あなたの質問に答えるには、通常使用する単一の要素を取得します

.Single( ) .SingleOrDefault( ) .First() .FirstOrDefault()

于 2012-12-13T17:37:32.737 に答える