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