我想评估查询结果并根据结果进行切换。如果'chk'查询从t.c_pointsTotal列返回为“0”,则使用query1。我想我遇到了dataType问题(评估为字符串,因为我知道该怎么做)???在db c_pointsTotal中是一个浮点数。我该如何做到这一点?因为它是下面的代码没有正确评估。
P.S。如果有人对此感到满意,请告诉我何时或为何使用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....)
}
答案 0 :(得分:1)
首先,您必须确保查询只返回一个结果。
关于数据类型,您可以更改此内容:
String zero = "0";
到此:
decimal zero=0;
答案 1 :(得分:0)
chk
是一系列项目。 zero
是一个字符串。如果chk
只返回1个项目,您可以使用LINQ First
方法获取该项目,如果FirstOrDefault
可能为空,则可以使用ToString
。如果它可以返回几个,你需要决定你希望它如何表现。它应该只看第一个,检查所有这些,等等。
修改:实际上您在查询上调用了"IEnumerable<string>" in the query; you should remove that ToString
,因此您只需获得{{1}}。