使用EntityDataSource在DetailsView上插入后获取唯一ID

时间:2012-09-28 10:57:30

标签: c#-4.0 detailsview entitydatasource

我正在使用C#,。net 4.0。我有一个DetailsView,我用来插入值。 DetailsView使用DataSourceId属性数据绑定到EntityDataSource控件。

EntityDataSource连接到名为Issues的Sql Server 2008数据库表(通过EDMX文件)。

我需要在插入发生后从新插入的行中找到唯一的id。 sql表使用UniqueIdentifier数据类型,id列称为“IssueId”。

我试过这个:

protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
{
    if (e.AffectedRows > 0)
    {
        int issueId = 0;
        int.TryParse(e.Values["IssueId"].ToString(), out issueId);
    }
}

但是,在我说“int.TryParse”的行上,我得到一个“对象引用未设置为对象的实例”。

我需要知道的是如何从刚刚插入的项目中获取唯一ID?

1 个答案:

答案 0 :(得分:3)

所以,回到这四个月后......

我不认为您可以在DetailsView上的ItemInserted事件期间获取唯一ID。相反,您必须从EntityDataSource控件上的Inserted事件中获取它。

像这样:

protected void edsIssues_Inserted(object sender, EntityDataSourceChangedEventArgs e)
{
        int issueId = 0;
        issueId = ((Model.Issue)e.Entity).IssueId;
}