Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从LINQ C中的数据库获取数据?_C#_.net_Linq_Max - Fatal编程技术网

C# 如何从LINQ C中的数据库获取数据?

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

如何从数据库中获取最新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存储为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生成失败。