我正在使用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?
答案 0 :(得分:3)
所以,回到这四个月后......
我不认为您可以在DetailsView上的ItemInserted事件期间获取唯一ID。相反,您必须从EntityDataSource控件上的Inserted事件中获取它。
像这样:
protected void edsIssues_Inserted(object sender, EntityDataSourceChangedEventArgs e)
{
int issueId = 0;
issueId = ((Model.Issue)e.Entity).IssueId;
}