2009年4月16日 星期四

SqlDataSource 與 DetailView 如何取得@@IDENTTY的值

想要在DetailView中新增資料,但有一個欄位是IDENTITY

此時可以在SqlDataSource中加入幾個處理



1.在INSERT字串中加入

SELECT @PK_New = @@IDENTITY



2.在執行新增前先加入一個Output的值

protected void SqlDataSourceDetail_Inserting(object sender, SqlDataSourceCommandEventArgs e)

{

SqlParameter insertedKey = new SqlParameter("@PK_New", SqlDbType.Int); insertedKey.Direction = ParameterDirection.Output;
e.Command.Parameters.Add(insertedKey);
}



3.在新增完畢後可以由e.Command取回out的值

protected void SqlDataSourceDetail_Inserted(object sender, SqlDataSourceStatusEventArgs e)

{

// 取的回傳的KEY值

e.Command.Parameters["@PK_New"].Value;

}