Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何向SqlDataSource.UpdateCommand添加异常处理_C#_Asp.net_.net_Sqldatasource - Fatal编程技术网

C# 如何向SqlDataSource.UpdateCommand添加异常处理

C# 如何向SqlDataSource.UpdateCommand添加异常处理,c#,asp.net,.net,sqldatasource,C#,Asp.net,.net,Sqldatasource,我们有一个radgrid,它会自动用SqlDataSource.UpdateCommand更新。因此,当我们编辑一些列并单击Update时,标记中的UpdateCommand会正确更新表 它看起来像这样: <telerik:RadGrid ID="RadGrid" DataSourceID="SqlDataSource1" runat="server" AllowAutomaticUpdates="true" > <MasterTableView AutoGenerateCol

我们有一个radgrid,它会自动用SqlDataSource.UpdateCommand更新。因此,当我们编辑一些列并单击Update时,标记中的UpdateCommand会正确更新表

它看起来像这样:

<telerik:RadGrid ID="RadGrid" DataSourceID="SqlDataSource1" runat="server" AllowAutomaticUpdates="true" >
<MasterTableView AutoGenerateColumns="False" DataKeyNames="City" CommandItemDisplay="Top"  AllowAutomaticUpdates="true">
        <Columns>
            <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn">
            </telerik:GridEditCommandColumn>
            <telerik:GridBoundColumn DataField="City" HeaderText="City" ReadOnly="True" SortExpression="City"
                UniqueName="City" >
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Prefix" HeaderText="Prefix" UniqueName="Prefix">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="sector" HeaderText="sector" UniqueName="sector">
            </telerik:GridBoundColumn>
        </Columns>
        </MasterTableView>
</telerik:RadGrid>
<asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:RF-PRConnectionString %>"
SelectCommand="SELECT STATEMENT" runat="server"
UpdateCommand= "UPDATE STATEMENT">
<UpdateParameters>
    <asp:Parameter Name="Name" Type="String" />
    <asp:Parameter Name="sector" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>

但假设更新在表中生成了一个异常,即尝试使用varchar更新Int、违反某些键等。是否有任何方法可以向SqlDataSource.UpdateCommand添加Try…Catch?我不知道怎么做,因为没有代码来进行更新,一切都是通过SqlDataSource完成的。

非常简单的解决方案:我需要处理OnRowUpdated事件

protected void GridView_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
    if (e.Exception != null)
    {
        //show error message
        e.ExceptionHandled = true;
    }
}