C# 如何从LINQ C中的数据库获取数据?
如何从数据库中获取最新id并将其放入文本框 注意:我必须从数据库返回最新的id 看看这个方法:C# 如何从LINQ C中的数据库获取数据?,c#,.net,linq,max,C#,.net,Linq,Max,如何从数据库中获取最新id并将其放入文本框 注意:我必须从数据库返回最新的id 看看这个方法: public void refresh() { var query = from qc in db.tbl_viewClients select qc.id ; int a = Convert.ToInt32(query.SingleOrDefault().ToString()); txt_id.Text = Convert.ToString(a); } 假设id存储为in
public void refresh()
{
var query = from qc in db.tbl_viewClients select qc.id ;
int a = Convert.ToInt32(query.SingleOrDefault().ToString());
txt_id.Text = Convert.ToString(a);
}
假设id存储为int,latest表示最大的id,您只需使用Max*:
否则,问题中缺少确定最新日期的信息,如创建日期
*添加DefaultIfEmpty0以在查询不返回结果的情况下返回0。假设id存储为int,latest表示最大id,您只需使用Max*:
否则,问题中缺少确定最新日期的信息,如创建日期
*添加了DefaultIfEmpty0以在查询未返回结果的情况下返回0。您应该处理没有记录的情况,因为Max将抛出InvalidOperationException 但是这种方法会枚举查询两次! 这里有个窍门
var query = from qc in db.tbl_viewClients select (int?)qc.id;
var max = query.Max();
if (max.HasValue)
{
txt_id.Text = max.ToString();
// do rest of work
}
else
{
//handle the case when you have no record
}
您应该处理没有记录的情况,因为Max将抛出InvalidOperationException 但是这种方法会枚举查询两次! 这里有个窍门
var query = from qc in db.tbl_viewClients select (int?)qc.id;
var max = query.Max();
if (max.HasValue)
{
txt_id.Text = max.ToString();
// do rest of work
}
else
{
//handle the case when you have no record
}
请试试这个
var query = from t in table orderby t.Id descending
select t.Id;
object result = query.FirstOrDefault();
希望有帮助。请试试这个
var query = from t in table orderby t.Id descending
select t.Id;
object result = query.FirstOrDefault();
希望有帮助。如果您试图执行我认为您正在向数据库中插入内容的操作,然后查询它以查找您认为刚刚插入的ID,请停止!这样做并不能确保您检索的ID是您所需要的ID,因为您的数据库可以在任何时候被其他人更改。但是,考虑到这只是一个测试,只有你使用它,你需要知道你刚刚插入的ID,那么实现这一点的方法是:
假设您使用LINQtoSQL或Entity Framework,当您向上下文添加对象并调用SaveChanges时,紧接着,相关对象将填充其ID或主键字段。检查一下 如果您试图执行我认为您正在向数据库中插入某些内容,然后查询它以查找您认为是刚刚插入的ID,那么请停止!这样做并不能确保您检索的ID是您所需要的ID,因为您的数据库可以在任何时候被其他人更改。但是,考虑到这只是一个测试,只有你使用它,你需要知道你刚刚插入的ID,那么实现这一点的方法是:
假设您使用LINQtoSQL或Entity Framework,当您向上下文添加对象并调用SaveChanges时,紧接着,相关对象将填充其ID或主键字段。检查一下 你能提供更多的信息吗。什么是表结构。您确定要的是“最高数字”而不是刚刚插入的行的ID吗?因为否则并发会导致麻烦。它的效率非常低。Id或密钥并不打算显示在用户界面中,特别是数据库生成的值。不能期望多个用户看到相同的top Id,并使他们认为他们将在其事务中获得top Id+1值。能否提供更多信息。什么是表结构。您确定要的是“最高数字”而不是刚刚插入的行的ID吗?因为否则并发会导致麻烦。它的效率非常低。Id或密钥并不打算显示在用户界面中,特别是数据库生成的值。不能期望多个用户看到同一个top Id,并让他们认为他们将在其事务中获得top Id+1值。如果所有Id都小于零怎么办?@dotctor仅在查询未返回结果的情况下影响结果,这意味着表中根本没有Id。否则,只考虑实际ID。我错了。事实上,我突然想到了一些事情,我解释得很糟糕。当结果为0(它是最大id)或表中没有记录时,此方法存在问题。是否确实有效?当我在Linq2SQL中以这种方式使用DefaultIfEmpty时,SQL生成失败。如果所有id都小于零,该怎么办?@dotctor仅在查询未返回结果的情况下影响结果,这意味着如果表中根本没有id。否则,只考虑实际ID。我错了。事实上,我突然想到了一些事情,我解释得很糟糕。当结果为0(它是最大id)或表中没有记录时,此方法存在问题。是否确实有效?当我在Linq2SQL中以这种方式使用DefaultIfEmpty时,SQL生成失败。