-3
私はC#を学びたいと思っています。あなたには簡単な解決方法が分かることを願っています。IFステートメント内でクエリを実行してください
2つの可能なLINQクエリを実行したいが、異なる場所から読み込み、IF条件に基づいて2つの異なるフィールド(両方のID)を返す。
はVB6で、それはのような単純なものだっただろう:
Dim strQuery as string
Dim rs as adodb.recordset
If 1 = 1 then
strQuery = "Select messageid as id1, refid as id1 from x where ..."
else
strQuery = "Select commonid as id1, nextid as id2 from x where ..."
endif
set rs = cn.execute(strquery)
debug.print rs!id1 & rs!id2
どのようにこれは、C#で行うことができますか?
私は試しました: IQueryable fD = null;
if (1 == 1)
{
fD = from qa in data.table1
select qa;
}
else
{
fD = from qa in data.table2
select qa;
}
foreach (var a in FD)
{
// Unable to see any data.
}
これはLINQとは関係ありません。これとは別に、C#では多かれ少なかれ同じでなければなりません。ただし、「End If」と「Dim」はなく、スコープを定義する角かっこだけです。だからあなたの問題は何ですか? – HimBromBeere
LINQは、クエリ関数を実行した後に 'IQueryable'コレクションを返しますので、' strQuery = x.Where(...)を使用して 'IQueryable strQuery'を返します。(x => new {id1 = x.commonid、id2 = x.nextid} ); 'それを考慮する必要があります。 –
C#で何を試しましたか?おそらくLINQ to SQLを使用しようとしていますか? –