【问题标题】:how to retrieve last entry primarykey? [duplicate]如何检索最后一个条目的主键? [复制]
【发布时间】:2013-03-19 06:56:57
【问题描述】:
    public int retrieveID()
    {
        int lastEntry = 0;
        try
        {
            queryString = "Select ID  from Database";
            myComm = new OleDbCommand(queryString, myConn);

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        return lastEntry;
    }

我想检索访问数据库中使用的最后一个主键,而我将主键设置为自动编号。

详细说明..

我正在开发一个数据库应用程序并希望使用主键,例如,如果数据库中的最后一个条目是 10,我想检索 10,我尝试了简单的查询,但没有成功。

【问题讨论】:

  • 不,实际上我想使用它,例如,为了接收,我想向用户显示这是你的收据号..
  • "SELECT TOP 1 ID FROM Table ORDER BY ID DESC"
  • 我发现的另一种但更好的方法是“SELECT max(ID) From Table”
  • 不要在多用户系统中使用select top 1Max(ID)。这是致命的。

标签: c#-4.0 ms-access-2007


【解决方案1】:

如果您使用的是 OLEDB 连接,那么这应该可以工作

queryString = "SELECT @@IDENTITY";

请注意,这应该在创建要保存 ID 值的记录的 INSERT 之后立即调用。如果您的代码要使用身份(自动编号)字段创建其他记录,那么这些调用将更新(替换)@@IDENTITY 值。

【讨论】:

  • 从表中选择 max(id),我认为是更好的方法..
  • @RummyKhan SELECT Max(ID) 可以在您知道确定只会永远的应用中使用成为一个用户使用它,但它可能会在多用户环境中导致严重问题,并且是一个坏习惯,尤其是在SELECT @@IDENTITY可用的情况下。
  • thanx 兄弟.. 我还在静态编程.. 我还没有开始网络编程.. 但是我会记住这件事.. 再次感谢..
猜你喜欢
  • 2014-11-03
  • 1970-01-01
  • 2015-02-06
  • 2016-10-08
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
  • 2010-10-29
  • 1970-01-01
相关资源
最近更新 更多