DetailsView.ItemInserted Event查找主键(DataKey)

本文关键字:DataKey ItemInserted Event 查找 DetailsView | 更新日期: 2023-09-27 18:00:24

net和C#4。

我有一个DetailsView Control,我使用一些自定义逻辑进行数据绑定。

在DetailsView中输入数据时,我想使用Event "Inserted"(或其他)从DetailsView获取最近插入的数据的主键(我想使用DataKey属性)。

不幸的是我做不到。

你知道如何使用DetailsView为正在插入的项目插入检索主键吗?

谢谢你的帮助!

DetailsView.ItemInserted Event查找主键(DataKey)

首先,您的SQL语句需要返回SCOPE_IDENTITY()

其次,假设您使用的是ObjectDataSource控件,在数据源控件的Inserted事件中获取e.ReturnValue,如下例所示:

protected void dsReferralInsert_Inserted(object sender, ObjectDataSourceStatusEventArgs e)
{
    int intKey;
    if (int.TryParse(e.ReturnValue, out intKey))
    {
        Response.Redirect("ReferralDetail.aspx?ReferralID=" + intKey.ToString());
    }
}

此示例使用新的键值重定向到详细信息页面。

如果使用SqlDataSource控件,则可以通过编程方式访问Output参数或ReturnValue参数,具体取决于编写SQL的方式。如果你告诉我你正在使用什么样的数据访问,我会举一个例子。

DetailsViewInsertedEventArgs.Values获取一个字典,其中包含插入记录的字段名称/值对。

void CustomerDetailsView_ItemInserted(Object sender, 
    DetailsViewInsertedEventArgs e)
{
    var key = e.Values["Key"];
}