0

我一直在使用本教程使用 C# 自学 SQL Server Express。这几乎是我对数据库的全部了解,因此当我搜索示例或信息以构建此项目时,我似乎无法使其符合本教程的最终结果。

例如,在教程的最后,作者为数据表创建了一个主键。我希望能够返回最后添加的密钥。我发现您需要使用 select last_insert_id() 函数来执行此操作,但具体是如何完成的呢?我读过一些关于查询和过程的东西,但我不知道如何使用它们。

谁能向我解释这是如何完成的?非常感谢为教程中的示例代码获取最后创建的主键的示例。

谢谢!

编辑:操作,我提到 SELECT SCOPE_IDENTITY(),而不是选择 last_insert_id()

4

1 回答 1

1

您可以将该Scope_Identity函数与ExecuteScalar命令中的方法一起使用:

using (var conn = new SqlConnection("Server=.\SQLExpress;AttachDbFilename=|DataDirectory|Northwind.mdf;Database=Northwind;Trusted_Connection=Yes;"))
using (var cmd = conn.CreateCommand())
{
    conn.Open();
    cmd.CommandText = 
    @"
        INSERT INTO Categories (CategoryName) Values (@CategoryName); 
        SELECT Scope_Identity()
    ";
    cmd.Parameters.AddWithValue("@CategoryName", "some category");
    int lastId = (int)cmd.ExecuteScalar();
}
于 2012-08-03T08:52:21.157 回答