2010-03-25 41 views
0

我寧願不打電話給數據庫來查詢@@ IDENTITY。有什麼方法可以獲得通過代碼插入內容的身份值?是否有可能在ListView中的ItemInserted事件中獲取標識值?

+0

我認爲如果您提供有關使用ListView的數據源類型和數據訪問技術(SqlDataSource?Linq to SQL?Linq to Entities?ObjectDataSource?等)的信息將會有所幫助。由於它是通過數據源提供的,因此ListView不會知道插入數據的任何內容。我想返回的身份將是數據源的能力,而不是ListView。 – Slauma 2010-03-26 00:13:16

回答

1

通過添加一個OnInserted事件到我的列表視圖正在使用的LinqDataSource中找到了一個解決方案。見下:

protected void lds_Personnel_OnInserted(object sender, LinqDataSourceStatusEventArgs e) 
{ 
    int id= ((Personnel)e.Result).IdentityNameHere; 
. 
. 
. 
} 

希望對某人有幫助。

0

請嘗試使用SCOPE_IDENTITY()來代替。

+0

我的觀點是我不想查詢數據庫。我能從代碼中得到這個嗎? – 2010-03-25 22:36:19

+0

我不確定你想要達到的目標。如果您將具有自動標識列的內容插入到數據庫中,那麼數據庫是您可以從中檢索該值的唯一位置。儘管在INSERT語句的末尾添加一個SELECT SCOPE_IDENTITY()調用是很常見的做法,爲了檢索不必查詢數據庫多次的標識符值。這也是確保您檢索正確ID的最可靠的方法。 – Manu 2010-03-25 22:40:43

+0

我想知道的是,如果有可能通過ListView事件參數而不是數據庫獲取標識值。我明白數據庫是身份的來源,但ListViews通常會自動提取這些值。這就是爲什麼我可以迭代ListView中的每個項目並查看DataKey值。我的問題是,如果有一種方法可以找到我通過列表視圖插入但尚未綁定的記錄的Identity(DataKey)值。我的最終目標是使用ItemInserted事件中的此ID將記錄插入到子表中。 – 2010-03-25 23:02:03

相關問題