-3
我正在尝试学习C#并遇到了一个问题,我希望你们知道一个简单的解决方案。在IF语句中运行查询
我想运行两个可能的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'集合,所以'IQueryable strQuery'然后使用'strQuery = x.Where(...)。Select(x => new {id1 = x.commonid,id2 = x.nextid} );'应该考虑那么。 –
你在C#中尝试过什么?你可能试图使用LINQ to SQL? –