我希望 MS Access 中最后一条记录的相应 ID 出现在消息框中

问题描述

我在 C# (Visual Studio 15) 中使用 Access 作为数据库。我想将表单条目(添加记录)保存到 Access 数据库中,并希望在成功保存后在 MsgBox显示相应的记录 ID。我尝试了以下方法

setSystemTime

解决方法

你可以这样做:

using (OleDbCommand Command = new OleDbCommand("",conn))
{
    Command.CommandText = "Your big ugly mess - need to change this to parmaters!)";
    Command.Connection.Open();
    Command.ExecuteNonQuery();

    Command.CommandText = "Select @@Identity";
    var intLastID = Command.ExecuteScalar;

    MsgBox("Last id into database = " + intLastID);
}

如前所述,您确实想更改插入命令 - 它太长,太难维护,并且容易出现代码错误甚至 sql 注入。

但是,现在,您可以使用上述方法来获取/获取最后一个 ID 插入。

,

为了解决我的问题,我有以下代码(来自凯文):

     string query = "Insert Into Categories (CategoryName) Values (?)";
        string query2 = "Select @@Identity";
        int ID;
        string connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Northwind.mdb";
        using (OleDbConnection conn = new OleDbConnection(connect))
        {
            using (OleDbCommand cmd = new OleDbCommand(query,conn))

            {
                cmd.Parameters.AddWithValue("@CategoryName",OleDbType.Integer);
                conn.Open();
                cmd.ExecuteNonQuery();
                cmd.CommandText = query2;
                ID = (int)cmd.ExecuteScalar();
            }
        }

现在,我的挑战是如何在成功创建记录后让 ID 出现在消息框中。请考虑我在这篇文章中与此相关的最早代码。