基于我刚刚完成的SQL教程.正在返回主键

  • 本文关键字:返回 教程 SQL 于我刚 c# .net sql
  • 更新时间 :
  • 英文 :


我一直在使用本教程来教授我自己使用C#的SQL Server Express。这几乎是我对数据库的全部了解,所以当我搜索要在这个项目上构建的示例或信息时,我似乎无法使其与本教程的最终结果相匹配。

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

有人能向我解释一下是怎么做到的吗?如果能为教程中的示例代码获取最后创建的主键,我们将不胜感激。

谢谢!

编辑:操作,请选择SCOPE_IDENTITY(),而不是选择last_insert_id()

您可以在命令上使用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();
}

最新更新