【问题标题】:How can i get the last id from the database in C#如何从 C# 中的数据库中获取最后一个 id
【发布时间】:2019-12-24 13:10:45
【问题描述】:

我曾尝试使用 SELECT 查询从数据库中获取最后一个 id,即 SELECT LAST_INSERT_id FROM studentdetails,但它对我不起作用。

我真的需要帮助!

请问我可以使用什么查询从数据库中获取最后一个 id?

string me = dtba.ConnectionString();

SqlConnection connection = new SqlConnection(me);

string selectquery = "SELECT LAST_INSERT_id FROM studentdetails";
SqlCommand selectcmd = new SqlCommand(selectquery, connection);

selectcmd.Parameters.AddWithValue("@id", registrationNo.Text);

try
{
    connection.Open();

    SqlDataReader reader = selectcmd.ExecuteReader();

    if (reader.Read())
    {                    
        registrationNo.Text = reader["id"].ToString();
    }

    if (registrationNo.Text == "")
    {
        MessageBox.Show("SORRY ID HAS NOT BEEN READ");
    }
    else
    {
        MessageBox.Show("REGISTRATION NUMBER IS CORRECT");
    }
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
finally
{
    connection.Close();
}

【问题讨论】:

标签: sql-server c#-2.0


【解决方案1】:

MySQL

是:

SELECT LAST_INSERT_ID() AS id FROM studentdetails

而不是

SELECT LAST_INSERT_id FROM studentdetails

这是因为LAST_INSERT_ID 是一个函数,而不是列名。这是假设您使用的是 MySQL。

SQL 服务器

如果您使用的是 SQL Server,请使用:

SELECT SCOPE_IDENTITY() AS id FROM studentdetails

请注意,SCOPE_IDENTITY() 函数只能在 INSERT 之后使用,并且仅当您插入行的表具有 IDENTITY(自动递增)列时才有效。

【讨论】:

  • 它的工作方式,但它显示异常:“'LAST_INSERT_ID' 不是公认的内置函数名称。”
  • 这真的是 MySQL 吗?
  • SQL Server,是吗?
  • “Sql”是一个模棱两可的术语。请将产品称为“MySql”或“Sql Server”或不太含糊的“Microsoft Sql Server”。使用明确的术语将极大地帮助您的发展之路。
  • @marc_s 的观察对于我将其复制到答案中非常重要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多