繁体   English   中英

如何将异常处理添加到SqlDataSource.UpdateCommand

[英]How to add exception handling to SqlDataSource.UpdateCommand

我们有一个radgrid,它会使用SqlDataSource.UpdateCommand自动更新。 因此,当我们编辑某些列并单击“更新”时,表将使用标记中的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,违反了某些键,等等)。 有什么方法可以将Try...Catch添加到SqlDataSource.UpdateCommand吗? 我不知道该怎么做,因为后面没有代码可以执行更新,因此一切都通过SqlDataSource完成。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM