קבלת id של שורה חדשה באירוע ItemInserted של פקד DetailsView


http://www.developers.org.il/forums/Topic9522.aspx
Print Topic | Close Window

By drvvv - 07/02/2010 15:32:31
שלום לכולם,

נוצר לי צורך לקבל את ה-ID של הרשומה החדשה לאחר הוספה באמצעות DetailsView (לצורך הוספת תגיות מתיבת טקסט לאותה רשומה).

אני מנסה לקבל את הId החדש באירוע ItemInserted או באירוע ItemInserting אולם עד כה לא הצלחתי למצוא דרך לבצע זאת.

אודה לכם על עזרה למצוא דרך לעשות את זה.

By Liron_Ratzabi - 08/02/2010 17:57:19
היי,

כדי לעשות זאת, בצע את הצעדים הבאים:

1. ראשית, עליך להוסיף פרמטר Output לשאילתת ההכנסה באוביקט ה-Data Source שלך ("<InsertParameters>"):

קטע קוד
<asp : Parameter Direction="Output" Name="sampleNewRecordId" Size="4" Type="Int16" />

2. לאחר מכן, שרשר לשאילתת ההכנסה באוביקט ה-Data Source את משפט ה-SQL הבא בצורה זו:

קטע קוד
InsertCommand="INSERT INTO...;SELECT @sampleNewRecordId = @@Identity"

3. באירוע Inserted של אוביקט ה-Data Source הכנס את הקוד הבא:

קטע קוד
int sampleId = int.Parse(e.Command.Parameters["@sampleNewRecordId"].Value.ToString());
By drvvv - 11/02/2010 23:01:59
תודה נשמע מעט מסובך, אני ינסה את זה.
By drvvv - 09/03/2010 01:12:44
מצאתי פתרון יותר קל ואלגנטי!
קטע קוד

protected void LinqDataSource2_Inserted(object sender, LinqDataSourceStatusEventArgs e)
{
int num = ((Article)(e.Result)).ID;
}