读书人

Linq查询中的奇怪结果

发布时间: 2012-12-23 11:28:15 作者: rapoo

Linq查询中的奇怪结果求助
string sa=Request.QueryString ["name"];//这是从前一个页面取到的值
this.lblLy.Text = sa;//同一个页面上有一个Lable控件,确实显示了sa存储的值:"A0003"
使用下面的查询,显示没有查到符合条件的记录:
var LYGongHaoSJ = from GongHsj in dtLy.AsEnumerable()
where
GongHsj.Field<string>("GongHao") ==sa
select GongHsj;
如果直接将查询条件中的变量sa改为常量,能查到16条记录:
var LYGongHaoSJ = from GongHsj in dtLy.AsEnumerable()
where
GongHsj.Field<string>("GongHao") =="A0003"
select GongHsj;
dtLy是一个DataTable,GongHao是它的一个字段,它存储的记录如下,工号为A0003的记录确实有16条:
(这里原来想贴一个结构和数据图,但没能贴上)
为什么同一个位置上的常量与变量就能有如此大的差别呢?百思不得其解。请高手指点,本人在此表示真诚的谢谢!!

[解决办法]
调试吧,看看是不是前后空格惹的祸:

GongHsj.Field<string>("GongHao").Contains(ViewState["temp"].ToString())

or :

GongHsj.Field<string>("GongHao").Trim() == ViewState["temp"].ToString().Trim()



读书人网 >.NET

热点推荐