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()