我希望我的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.
有人可以指出我哪里出错吗?
答案 0 :(得分:3)
我认为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
是一个整数。但在这种情况下,您的代码甚至不应该编译。我只是想知道赞成票:-) ......