-2

クエリの結果を評価し、結果に基づいて切り替えたい。「chk」クエリが t.c_pointsTotal 列から「0」として返される場合、query1 を使用します。私はdataTypeの問題に遭遇していると思います(私が知っている方法はそれだけなので、文字列として評価します)??? データベースでは c_pointsTotal はフロートです。どうすればこれを達成できますか? 以下のコードは正しく評価されません。

ps誰かがそれに慣れている場合は、同じ効果を得るためにLinqをSQL(DataReaderを使用)に並べて使用する時期と理由を教えてください。

String zero = "0";
var chk = (from t in db.t_BannerUsers
           where t.c_call_id.ToString().ToLower().Equals(c_call_id.ToLower())     
           &&  t.c_user_id.ToString().ToLower().Equals(c_user_id.ToLower())
           select ((t.c_pointsTotal))).ToString();

if (String.Equals(chk, zero))
{
    return(query1.....)
}
else
{
    return (query2....)
}
4

2 に答える 2

1

まず、クエリが 1 つの結果のみを返すことを確認する必要があります。

データ型に関しては、これを変更できます。

String zero = "0";

これに:

decimal zero=0;
于 2012-04-13T16:27:26.893 に答える
0

chk一連のアイテムです。 zero単一の文字列です。chkが 1 つの項目のみを返す場合は、LINQFirstメソッドを使用してその項目を取得FirstOrDefaultできます。または、項目が空である可能性があります。複数を返す可能性がある場合は、どのように動作させるかを決定する必要があります。最初だけを見る場合は、すべてをチェックするなどです。

編集:実際にはクエリを呼び出すToStringので、"IEnumerable<string>" in the query; you should remove that ToString.

于 2012-04-13T16:26:38.230 に答える