C# ASP.net DAL获取刚刚插入的记录的ID

C# ASP.net DAL获取刚刚插入的记录的ID,c#,asp.net,data-access-layer,uniqueidentifier,C#,Asp.net,Data Access Layer,Uniqueidentifier,它调用的存储过程是: // Add into DB int recordID = 0; using (tblArtworkTemplatesTableAdapter tblAdapter = new tblArtworkTemplatesTableAdapter()) { tblAdapter.Insert(DateTime.Now, int.Parse(lstChooseSpec.SelectedValue

它调用的存储过程是:

        // Add into DB
        int recordID = 0;
        using (tblArtworkTemplatesTableAdapter tblAdapter = new tblArtworkTemplatesTableAdapter())
        {
            tblAdapter.Insert(DateTime.Now, int.Parse(lstChooseSpec.SelectedValue), Master.loginData.loggedInUser.ID);
            recordID = int.Parse(tblAdapter.GetLastID().ToString());
        }

        // Redirect
        Response.Redirect("artworkDesigner.aspx?ID=" + recordID);

我似乎无法让它工作,我是一个新手与DAL的东西任何帮助感谢

我猜这是SQL Server?您应该从INSERT INTO存储过程返回新插入记录的ID。有关
@@Identity
的详细信息,请参见

从存储过程返回新插入记录的ID:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetLastID]
AS
    SET NOCOUNT ON;
select @@identity FROM tblArtworkTemplates

有关此主题的更多信息,请参阅。

您可能希望改用SCOPE\u IDENTITY。这里有更多的信息:这是一个关于StackOverflow的评论,你真的需要一个宏,比如“使用JQuery”,但是你应该看看实体框架……它让很多这种连接类型的代码都化为乌有。我干了这么多年,我再也不会回去了。如果您不喜欢EF,请查看NHibernate。。。。甚至是普通的LINQ to SQL。@marc_的观点很好,因为@@Identity不限于特定的范围。谢谢你的意见。
SELECT ID AS LastID FROM tblArtworkTemplates WHERE ID = @@Identity;