请,我正在尝试访问数据库以访问用户ID。但是,当我尝试访问时,返回的值为0。最初,我在弄清楚如何将此SQL语句(从用户名为'Godymn'的SELECT user_id)更改为LINQ时遇到问题。但是后来我发现我可以使用:
var result = users.Where(x => x.firstname ==“ Godymn”)。Select(x => x.userid);
到目前为止,当我尝试在我的代码中使用查询时,它返回0。但是我需要的是根据linkLabel中指定的名称返回用户ID。我无法弄清楚为什么它不起作用。
将感谢您的帮助。
这是我的代码
private int Chk()
{
string link = linkLabelPartner.Text;
var result = (dynamic)null;
using (DbModel db = new DbModel())
{
result = db.users.Where(x => x.firstname == link).Select(x => x.user_id).FirstOrDefault();
}
return result;
}
这是我用来检查返回内容的按钮。
private void btnTey_Click(object sender, EventArgs e)
{
int test = Chk();
MessageBox.Show(test.ToString());
}
答案 0 :(得分:0)
Godymn下午好。
以下是一些可能的情况:
1-数据库中不存在用户名Godymn 2-user_id为0。
尝试检查这两种情况。
之后,您可以将方法更改为更加“调试友好”的级别。
var result = db.users.First(f => f.firstname == link);
然后,检查result
是否为空。如果为null,则在数据库中找不到该名称。
如果不为null,则检查结果是否为0。
为什么使用这种方法:这样,您可以判断问题出在寻找用户时还是绑定ID值时。
答案 1 :(得分:0)
我无法评论,我很抱歉,但首先我会尝试一下:
var foo = db.users.Select(x => x).ToList();
然后您可以像这样调查结果 我想您尝试获取错误的数据(或错误的结构) 当我卡住时,我这样做:
或者也许您可以附加对象的结构?
答案 2 :(得分:0)
是的,我能够修复该错误。问题出在Chris Dunaway正确地说的linkLabelPartner.Text上。他一提到链接标签仅包含名字,我就知道那是丢失的部分。它包含名字和姓氏,而我只占名字。因此,返回的值仍为0。因此,我要做的就是将名字和姓氏连接在一起,从而解决了该问题。所以,是的,我最初使用的查询是正确的。
这是代码
private int Chk()
{
string link = linkLabelPartner.Text;
var result = (dynamic)null;
using (DbModel db = new DbModel ())
{
result = db.users.Where(x => x.lastname + " " + x.firstname == link ).Select(x => x.users).FirstOrDefault();
}
return result;
}
private void btnTey_Click(object sender, EventArgs e)
{
int test = Chk();
MessageBox.Show(test.ToString());
}
非常感谢大家的建议,谢谢。