繁体   English   中英

非常简单的LINQ查询,将文本框值传递给where子句

[英]Very simple LINQ query, passing in textbox value to the where clause

我希望我的LINQ查询能够根据用户在文本框中输入的内容来统计表中成员的实例数。

结果,我有以下

protected void btnSubmit_Click(object sender, EventArgs e)
{
    LoginDataContext lg = new LoginDataContext();

    int logincheck = (from r in lg.tblOnlineReportingLogins
                      where r.MemberID == tbxMember.Text.ToString()
                      select r).Count();

当我调试它时,当我知道不是这种情况时,该值显示为0。

有人可以指出我要去哪里了吗?

我想MemberId属性是一个整数。 因此,您无法将其与字符串值进行比较。 Text.ToString()仍然是多余的,因为Text已经是一个字符串。

where r.MemberId.ToString() == tbxMember.Text

应该管用。

较干净的解决方案是将Text属性解析为一个int值(以及一些有效性检查),并使用int进行比较,例如

int targetId;
if (Int32.TryParse(tbxMember.Text, out targetId)) {
    int logincheck = (from r in lg.tblOnlineReportingLogins
                  where r.MemberID == tbxMember.Text.ToString()
                  select r).Count();
    // ...
} else {
    MessageBox.ShowMessage("Invalid Id");
}

编辑 :对不起,也许我太快了,我认为MemberId是一个整数。 但是在这种情况下,您的代码甚至都不应该编译。 我只是想知道赞成票:-) ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM