2012-02-23 111 views
4

例如,我正在搜索特定的人员ID,并且希望将该ID存储到本地变量或实例变量中。如何检索查询结果并将它们存储在LINQ to SQL的int变量中? 假设我们有这个疑问LINQ to SQL将查询结果存储在变量中

from user in dbo.DoctorsName 
where doctorsName = "Foo Bar" 
select DOC_ID; 
+0

是什么DOC_ID?我真的不明白你想要什么?你想从DB获得结果并将它们分配给局部变量? – Jayanga 2012-02-23 07:01:36

+0

DOC_ID只是一个ID,我想检索一个ID,医生的名字是“Foo Bar” – user962206 2012-02-23 07:07:56

回答

5

您可以使用FirstOrDefault()这样的:

var results = from user in dbo.DoctorsName 
       where user.doctorsName == "Foo Bar" 
       select user; 

string personName = results.FirstOrDefault().Name; 
+0

就是这样?我将如何执行查询?有没有insertOnSubmit?如果我正在查找表格ID,该怎么办?不是一个字符串? – user962206 2012-02-23 07:07:05

+0

@ user962206,你为什么需要'insertOnSubmit()'?你可以选择任何'user'属性,就像'int ID = results.FirstOrDefault().ID'一样,这会为你选择的一行提供一个值。 – 2012-02-23 07:10:36

+0

这就是我需要的代码?不再?就是这样吗?像java中没有更多的executeQuery(结果)? – user962206 2012-02-23 07:12:14

0

这应该帮助。

var name = dbo.DoctorsName.Where(item => item.doctorsName = "Foo Bar").Select(item => item.Name).FirstOrDefault(); 

如果没有条件记录,则使用FirstOrDefault()可以引发异常。为此,您可以尝试使用 -

var namelist = dbo.DoctorsName.Where(item => item.doctorsName = "Foo Bar").Select(item => item.Name); 

If(namelist.Count() > 0) 
    var name = namelist.Fisrt(); 
+0

您的第一个代码片段中的FirstOrDefault不会抛出异常,因为您选择的是字符串类型的item.Name。如果没有匹配的记录,它将简单地返回null作为字符串类型的'default' – 2012-02-23 07:22:01

0

与此类似:

var ticketDepartment = from t in dt_tickets.AsEnumerable() 
         where t.Field<string>("MID") == mid 
         select new { department = t.Field<string>("Department") }; 

,现在你有你的变量ticketDepartment.department