我正在开发一个项目,在用户插入客户数据后,他想要打印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;
}
我应该怎么写来完成它?
答案 0 :(得分:4)
这应始终在执行时获取最后插入的记录(假设patn_id是自动递增)
string GetPatnName()
{
string name = (from n in Db.Patients
orderby n.patn_ID descending
select n.patn_name).FirstOrDefault();
return name;
}
答案 1 :(得分:1)
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
答案 2 :(得分:1)
更改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()
答案 3 :(得分:1)
如果您正在尝试获取刚刚输入的最后一位患者的姓名,并且您拥有第一个查询中的ID,则只需在LINQ中使用where子句。
string name = (from n in Db.Patients
where n.patn_ID == ID
select n.patn_name);
答案 4 :(得分:0)
以你的方式获取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
答案 5 :(得分:0)
为什么不创建一个患者类返回一个实例,如下所示
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;
}