【问题标题】:Retreive last record inserted检索最后插入的记录
【发布时间】:2019-11-17 19:28:59
【问题描述】:

我想检索最后插入的数据记录。我研究并了解到我必须使用 SELECT LAST_INSERT_ID()。我试过了,但没有工作。所以我在下面提供了我的代码

  //Inserting into Student Table
            string query = "INSERT INTO student(name) Values('" + txtboxname.Text + "' )";
          // query= "SELECT LAST_INSERT_ID()";
            // query += " SELECT SCOPE_IDENTITY()";
            //Inserting into course table
            string query1 = "INSERT INTO course(title) Values('" + txttitle.Text + "')";
          //  query1 = " SELECT LAST_INSERT_ID()";

            //Execute Insert Statement queries
            MySqlCommand command = new MySqlCommand(query, con);
            command.ExecuteNonQuery();
            command = new MySqlCommand(query1, con);
            command.ExecuteNonQuery();

            //Close and dispose off connections
            command.Dispose();
            con.Close();

//预览页面

        string query1 = "SELECT (name) FROM student WHERE ID = id"; 
        string query2 = "SELECT (title) FROM course WHERE ID = id";

        MySqlCommand command = new MySqlCommand(query1, con);
        lblname.Text = command.ExecuteScalar().ToString();

        command = new MySqlCommand(query2, con);
        lbltitle.Text = command.ExecuteScalar().ToString();

        con.Close();

【问题讨论】:

  • 你从SELECT LAST_INSERT_ID()得到了什么?
  • 要获取最后插入记录的主键值吗?表的主键列是否为 AutoIncrement?
  • 仍然只返回数据库中的第一条记录
  • 是的,主键都是自动递增的
  • 正如下面答案中的建议,您可以选择主键列的最大值以获取最新插入的主键值。为什么要选择最新的记录ID值?

标签: c# mysql asp.net-mvc


【解决方案1】:

如果您已将表 id 设置为自动递增,那么根据我的知识,从表中找到将是您最后插入的最大 id(如果可行的话)。

【讨论】:

  • 你需要用更多的描述和相关的代码sn-ps让你的答案更有用。
  • 我考虑了竞争条件,如果当时有几个人进入数据库,它会发生冲突或返回错误值
  • 是...当多个用户在表中插入数据时可能会导致问题。为什么要获取主键的最新值?
  • 这是一个预览页面,用于为具有该唯一 ID 的特定用户在先前页面中插入的数据
【解决方案2】:

在您的代码更改如下,

行号:3 query="set @std_id=last_insert_id();"

行号:7 query1="set @title_id=last_insert_id();"

预览页面:

    string query1 = "SELECT (name) FROM student WHERE ID = query"; 
    string query2 = "SELECT (title) FROM course WHERE ID = query1";

【讨论】:

  • 嗨,我收到以下错误“命令执行期间遇到致命错误”,指向预览页面的第 4 行。我尝试过尝试捕获同样的错误
  • 对不起,id是什么?在您的预览页面中?使用查询和查询1并使用它。
  • 预览页面中的id是'id'。它仍然返回第一条记录,也就是说,如果我得到你所说的“使用查询和查询1并使用它”的意思。你能把你的代码编辑成我的示例代码吗?
  • 只需检查如何在您的 c# 或 asp.net 中的另一个查询中调用变量,因为我可以解释 SQL 部分。
  • 对于学生和课程,数据库中的列名都是“id”。所以我指的是那个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多