2009-08-09 60 views
1

在我的Visual Studio的  2008年  ASP.NET網頁代碼隱藏,我打電話的SQL的TableAdapter附加程序,如下所示。ASP.NET TableAdapter的嵌件不返回正確的標識值

NewLabID = LabItem.AddLaborItem(ThisWONum, TechID, DateTime.Now, DateTime.Now, "Working", ""); 

的記錄被正確添加,但每次「NewLabID」返回1,而不是實際新拉比德(拉比德被定義爲int /同一性)。自動生成的代碼插入命令是

INSERT INTO [LaborDetail] ([WONum], [TechID], [StartDate], [StopDate], [OtherType], [OtherDesc]) 
VALUES (@WONum, @TechID, @StartDate, @StopDate, @OtherType, @OtherDesc); 
SELECT LabID FROM LaborDetail WHERE (LabID = SCOPE_IDENTITY()) 

和要求,這是自動生成的代碼:

returnValue = command.ExecuteNonQuery(); 

通過這個與調試器步進,的returnValue始終爲1不宜上面的命令返回新身份字段值?

回答

3

ExecuteNonQuery返回受影響的行數。您將需要使用ExecuteScalar()。

+0

謝謝 - 但我如何讓asp.net自動生成ExecuteScalar而不是ExecuteNonQuery?自動生成的命令清楚地設計爲返回新的ID。 – dsteele 2009-08-09 20:26:03

+1

好的,我明白了 - 我必須更改表適配器中查詢的ExecuteMode屬性。 – dsteele 2009-08-09 20:31:14

+0

你打敗了我。很高興爲你工作。 – Tchami 2009-08-09 20:33:15