2011-01-28 41 views
0
 // 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); 

它調用存儲過程是:ASP.net DAL得到剛插入記錄的ID

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

我似乎無法得到它的工作,我與這個DAL東西對於新手任何幫助感激!

+2

您可能想改爲使用SCOPE_IDENTITY。這裏是更多的信息:http://msdn.microsoft.com/en-us/library/ms190315.aspx – 2011-01-28 17:48:17

+2

這是你真的需要在StackOverflow上的一個宏,如「使用JQuery」,但你應該看看實體框架......它使得大量的這種佈線類型的代碼變得很冒煙。我做了這麼多年,我永遠不會回去。如果你不喜歡EF,請查看NHibernate。 – 2011-01-28 17:48:51

回答

1

我猜這是SQL Server?您應該從INSERT INTO存儲過程中返回新插入記錄的ID。欲瞭解更多關於@@Identity看到@@IDENTITY (Transact-SQL)

返回新插入的記錄的ID從您的存儲過程:

SELECT ID AS LastID FROM tblArtworkTemplates WHERE ID = @@Identity; 

富勒更多的話題看到How To Get Last Inserted ID On SQL Server

相關問題