[英]get last record of a table in database?
我正在開發一個項目,在用戶插入客戶的數據后,他想打印客戶的 ID 和名稱,這是 ID 的代碼
int getPatnID()
{
int ID = (from i in Db.Patients
select i.patn_ID).Max();
return ID;
}
我已經編寫了代碼來獲取名稱,但我無法完成它
string getPatnName()
{
string name = (from n in Db.Patients
select n.patn_name).
return name;
}
我該怎么寫才能完成它?
這應該總是在執行時獲得最后插入的記錄(假設 patn_id 是自動遞增的)
string GetPatnName()
{
string name = (from n in Db.Patients
orderby n.patn_ID descending
select n.patn_name).FirstOrDefault();
return name;
}
string getPatnName() {
string name = Db.Patients.Last(p => p.patn_ID).patn_name;
return name;
}
我建議你多花點時間研究 LINQ - 它是一個非常豐富和強大的庫: http://msdn.microsoft.com/en-us/library/bb397926.aspx
更改getPatnName
以獲取 id:
string getPatnName(int id)
{
string name = (from n in Db.Patients
where n.patn_ID == id
select n.patn_name).SingleOrDefault();
return name;
}
並給它getPatnID()
的結果
如果您嘗試獲取剛剛輸入的最后一位患者的姓名,並且您有第一個查詢的 ID,則只需要 LINQ 中的 where 子句。
string name = (from n in Db.Patients
where n.patn_ID == ID
select n.patn_name);
以您的方式獲取 id 是錯誤的。 不確定您使用的是什么,但 linq-2-sql 和實體框架在保存更改時都會填寫實體 ID:
Patient patient = new Patient();
Console.WriteLine(patient.Id); // will NOT be filled in
Db.Patients.Add(patient);
Db.SubmitChanges(); // SaveChanges in EF
Console.WriteLine(patient.Id); // will be filled in
為什么不只創建一個患者 class 並返回一個實例,如下所示
public class Patient
{
public int PatientID { get; set; }
public string Name { get; set; }
}
static Patient getDetails()
{
using (DataClasses1DataContext db = new DataClasses1DataContext())
{
var c = (from x in db.Patients.OrderByDescending(u => u.PatientID)
select new Patient()
{
PatientID = x.PatientID,
Name = x.Name
}).FirstOrDefault();
return c;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.