C# 从gridview中的存储过程捕获SQLException

C# 从gridview中的存储过程捕获SQLException,c#,sql,tsql,sql-server-2008,C#,Sql,Tsql,Sql Server 2008,我有一个名为UPDATE_INFO的存储过程,在该SP中,我抛出了一些SQLException RAISERROR ('Exception Created',16,1); 我在girdview中使用该SP,现在我想要的是,每当抛出异常时,我都可以捕获它并显示它,以便用户知道出了什么问题 但我不知道如何做到这一点,我认为Gridview已经捕获了来自SPs的所有异常 有人有办法做到这一点吗 代码部分: <asp:Content ID="BodyContent" runat="server"

我有一个名为UPDATE_INFO的存储过程,在该SP中,我抛出了一些SQLException

RAISERROR ('Exception Created',16,1);
我在girdview中使用该SP,现在我想要的是,每当抛出异常时,我都可以捕获它并显示它,以便用户知道出了什么问题

但我不知道如何做到这一点,我认为Gridview已经捕获了来自SPs的所有异常

有人有办法做到这一点吗

代码部分:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">

<asp:UpdatePanel ID="UpdatePane" runat="server">
<ContentTemplate >
    <asp:GridView ID="GridView" runat="server" AllowPaging="True" 
        AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ProjectID" 
        DataSourceID="DataSource" >
        <Columns>
            <asp:CommandField ShowEditButton="True" CausesValidation="false" />
            <asp:BoundField DataField="Name" HeaderText="Name"
                SortExpression="ProjectID"/>
        </Columns>
    </asp:GridView>

</ContentTemplate>
</asp:UpdatePanel>


    <asp:SqlDataSource ID="DataSource" runat="server" 
        ConflictDetection="CompareAllValues" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 

        SelectCommand="SELECT" SelectCommandType="StoredProcedure" 
        UpdateCommand="UPDATE" UpdateCommandType="StoredProcedure">

        <UpdateParameters>
            <asp:Parameter Name="Name" Type="String" />
            <asp:Parameter Name="original_Name" Type="String" />
        </UpdateParameters>
    </asp:SqlDataSource>
    </asp:Content>

伙计,你在做aspx页面上的所有事情。一般来说,这些事情都是在代码中完成的,您可以使用ADO.NET对发生的事情进行更多的控制,并且可以在try-catch中调用存储过程

可能还有一种方法可以将异常处理事件设置为从您正在使用的aspx标记页触发,但我确实认为如果您从aspx.cs文件中的方法加载数据会更好


这是在现实世界的应用程序中通常要做的事情。

伙计,你正在aspx页面中做所有的事情。一般来说,这些事情都是在代码中完成的,您可以使用ADO.NET对发生的事情进行更多的控制,并且可以在try-catch中调用存储过程

可能还有一种方法可以将异常处理事件设置为从您正在使用的aspx标记页触发,但我确实认为如果您从aspx.cs文件中的方法加载数据会更好


这是现实应用程序中通常要做的事情。

您需要处理OnRowUpdate事件,并检测是否存在以下错误:

protected void GridView_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
        if (e.Exception != null)
        {
            //show nice error message however you want
            // I imagine by firing javascript on the page
            e.ExceptionHandled = true; //important not forgetting this
        }
}
在标记中:


您需要处理OnRowUpdated事件并检测是否存在以下错误:

protected void GridView_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
        if (e.Exception != null)
        {
            //show nice error message however you want
            // I imagine by firing javascript on the page
            e.ExceptionHandled = true; //important not forgetting this
        }
}
在标记中:


您能告诉我们如何在代码中调用存储过程,以及如何将结果绑定到GridView吗?然后我们可以提供帮助:added:D您需要SP吗?您能告诉我们如何在代码中调用存储过程,以及如何将结果绑定到GridView吗?然后我们可以帮助:添加:D您需要SP吗?