1

我正在使用 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?

4

1 回答 1

3

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

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

像这样:

protected void edsIssues_Inserted(object sender, EntityDataSourceChangedEventArgs e)
{
        int issueId = 0;
        issueId = ((Model.Issue)e.Entity).IssueId;
}
于 2013-02-15T15:18:22.627 回答