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;