我正在尝试检查登录信息“,”,如果正确,则获取项目ID“,”,否则显示错误输入消息 我的代码是:
var getid = from user in db.tables
where user.name == tbusername.Text && user.password == tbpassword.Text
select user.Id;
c = Int32.Parse(getid);
但是vs表示c = Int32.Parse(getid);
出了什么问题?
答案 0 :(得分:1)
您不能将列表转换为整数。 Where
返回一个集合,(或者最好说一个IEnumerable
)。您正在将某物列表推到只需要某物1的空间(Int32.Parse)中。
如果您的ID是一个int,则不必解析它
示例
var getid = (from user in db.tables
where user.name == tbusername.Text && user.password == tbpassword.Text
select user.Id).FirstOrDefault();
// or
var getid = db.tables.Where(user => user.name == tbusername.Text && user.password == tbpassword.Text)
.Select(user => user.Id)
.FirstOrDefault();
if(getid == null)
{
MessageBox.Show("Oh nooez!!!");
return;
}
MessageBox.Show("You is id : " + getid );
Enumerable.FirstOrDefault Method (IEnumerable)
返回序列的第一个元素,如果返回则返回默认值 序列不包含任何元素。
Enumerable.Where Method (IEnumerable, Func)
根据谓词过滤一系列值。
返回值
类型:System.Collections.Generic.IEnumerable IEnumerable,包含来自输入序列的元素 满足条件。