2012-02-23 112 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