我需要根据 toolstripstatuslabel 中的
。
我的逻辑是从username
return
人员(员工)的 ID
textbox
中获取username
,查看database
table
,然后return
找到的用户名的 ID
。
但是我不知道如何返回 PersonID
,任何人都可以帮忙,因为我发现的研究是 returning
inserted
的值表
而不是我的情况。
业务逻辑代码:
public List<Person> getEmployeeByID(string empName)
{
LinqToSqlDataContext database = new LinqToSqlDataContext();
return database.Persons.Where(emp => emp.personName.Contains(empName)).ToList();
//return the ID of the person which carries the textbox's name
}
谢谢!
最佳答案
假设empName是一个唯一的用户名,你可以这样写:
public int getEmployeeID(string empName)
{
LinqToSqlDataContext database = new LinqToSqlDataContext();
return database.Persons
.Where(emp => emp.personName.Contains(empName))
.Single().Id;
//return the ID of the person which carries the textbox's name
}
如果 empName 可能不匹配数据库中的任何记录,您可以检查这种可能性。如果没有匹配,我在这里返回 null 并使用新的 C#6 语法功能来避免单独检查 SingleOrDefault() 是否返回 null。请注意,如果有多个匹配项,这将引发异常,这很可能是您想要的。 FirstOrDefault() 将默默地忽略具有相同(假定唯一)用户名的其他行。
public int? getEmployeeID(string empName)
{
LinqToSqlDataContext database = new LinqToSqlDataContext();
return database.Persons
.Where(emp => emp.personName.Contains(empName))
.SingleOrDefault()?.Id;
//return the ID of the person which carries the textbox's name
}
关于c# - 比较不同列的值后返回字段的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34904033/