问题描述
||
网络和C#4。
我有一个
DetailsView Control
,我使用一些自定义逻辑进行数据绑定。
在DetailsView中输入数据时,我想使用like1ѭ(或另一个)从DetailsView中获取最近插入的数据的主键(我想使用DataKey属性)。
不幸的是我无法做到。
您是否知道如何使用DetailsView插入要插入的项目的检索主键?
谢谢你的帮助!
解决方法
首先,您的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());
}
}
本示例使用新的键值重定向到详细信息页面。
如果使用的是“ 7”控件,则可以根据编写SQL的方式以编程方式访问Output参数或ReturnValue参数。如果您填写正在使用的数据访问类型,我将举一个例子。
, DetailsViewInsertedEventArgs.Values获取一个字典,其中包含插入记录的字段名称/值对。
void CustomerDetailsView_ItemInserted(Object sender,DetailsViewInsertedEventArgs e)
{
var key = e.Values[\"Key\"];
}