簡體   English   中英

獲取數據庫中表的最后一條記錄?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM