首页 新闻 会员 周边

LINQ 的 AS..怎么处理?

0
悬赏园豆:5 [已解决问题] 解决于 2014-06-13 14:34

SQL:DataTable dt1 = dataProviderSurvey.ProduceData("select count(*) as count from examine_content where examineid = '" + sExamineid.ToString() + "'");

foreach (DataRow dr1 in dt1.Rows)
{
return dr1["count"].ToString();  //dr1["count"]  就是上面SQL的as COUNT

}
return "";

 

我改的LINQ:

var result = (from c in ecRep.GetAll()
where c.EXAMINEID == eid
select new { count = c }).Count();

 

这样会报以下的错:

列“count”不属于表 。

AS
许大虾的主页 许大虾 | 初学一级 | 园豆:12
提问于:2014-06-13 11:28
< >
分享
最佳答案
0

 ecRep.GetAll().Count(m=>m.EXAMINEID == eid)

收获园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2014-06-13 11:57

你这样写,  as count    你没处理啊  不跟我写的是一个意思。

foreach (DataRow dr1 in dt1.Rows)
{
return dr1["count"].ToString();  //dr1["count"]  就是上面SQL的as COUNT

}

 

foreach的时候,这个count就拿不到这个列了

许大虾 | 园豆:12 (初学一级) | 2014-06-13 13:47

@许大虾: 原来的sql能返回多个结果吗?还是只有一个结果?如果有多个结果.那我这个就是错的.

如果只有1个结果.as count就没意义了.取出来还是一个整数变量

吴瑞祥 | 园豆:29449 (高人七级) | 2014-06-13 13:52

@吴瑞祥:   所以我现在就是请教下你们怎么处理啊

许大虾 | 园豆:12 (初学一级) | 2014-06-13 13:54

@许大虾: ````我上面写了撒.你觉得我那样写有什么问题?

吴瑞祥 | 园豆:29449 (高人七级) | 2014-06-13 14:11
其他回答(1)
0

如果只是要Count的话,而不是要as,那么你的LINQ改成如下即可。

var result = (from c in ecRep.GetAll()
where c.EXAMINEID == eid
select c).Count();

爱编程的大叔 | 园豆:30839 (高人七级) | 2014-06-13 12:48

你这样不跟我写的一样》?  =  =

支持(0) 反对(0) 许大虾 | 园豆:12 (初学一级) | 2014-06-13 13:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册