C# 更新gridview中的行时,捕获约束标签中的唯一值错误

C# 更新gridview中的行时,捕获约束标签中的唯一值错误,c#,asp.net,C#,Asp.net,我有一个gridview和sqldatasource将数据从datatable绑定到gridview 当我用一个新的单元格更新一个值,并且该值已经存在于gridview的另一个单元格中时,我将得到唯一值的CONTAINT error 如何捕获该错误并在标签中显示文本以警告用户该值已存在? 所以,我没有从事件中向gridview添加任何内容,也没有什么可以捕捉到的。我只是在编辑gridview 谢谢我认为您需要定义插入/插入的处理程序,这些处理程序的参数包含从数据库抛出的任何异常 为OnRowU

我有一个gridview和sqldatasource将数据从datatable绑定到gridview

当我用一个新的单元格更新一个值,并且该值已经存在于gridview的另一个单元格中时,我将得到唯一值的CONTAINT error

如何捕获该错误并在标签中显示文本以警告用户该值已存在? 所以,我没有从事件中向gridview添加任何内容,也没有什么可以捕捉到的。我只是在编辑gridview


谢谢

我认为您需要定义插入/插入的处理程序,这些处理程序的参数包含从数据库抛出的任何异常


为OnRowUpdated添加一个处理程序,并在那里处理错误:

例如:

OnRowUpdated="GridViewUpdateEventHandler"


protected void GridViewUpdateEventHandler(Object sender, GridViewUpdatedEventArgs e)
{
    if(e.Exception!=null)
    {
       lblForError.Text="Unable to update"; //etc
    }
}
其他人建议您在
onrowUpdate
上执行此操作,但如果您想在实际允许更新继续之前验证。如果您决定走这条路线,只需在
GridViewUpdateEventArgs
参数中将
e.Cancel
设置为True,如下所示:

e.Cancel=true;

如果您定义GridView行更新事件,您可以很容易地做到这一点。好的,我回家后会测试它。谢谢你的帮助