2011-08-12 72 views
1

我有一個名爲UPDATE_INFO一個存儲過程(SP),在SP,我拋出一些SQLException的捕捉的SQLException在GridView

RAISERROR ('Exception Created',16,1); 

我使用SP在girdview,現在我想要什麼每當發生異常時,我都可以捕捉並顯示它,以便用戶知道發生了什麼問題。

但我不知道如何做到這一點,我認爲,在GridView已經趕上從SP的

所有異常

有誰得到一個辦法做到這一點?

部分代碼:

<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> 
+0

燦你向我們展示瞭如何在代碼中調用存儲過程以及如何將結果綁定到GridView?那麼我們可以幫助:) –

+0

補充:D你需要SP嗎? – Xitrum

回答

4

您需要處理的事件引發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 
     } 
} 

在您的標記:

<asp:GridView ID="GridView" OnRowUpdated="GridView_RowUpdated" runat="server" AllowPaging = 「真」 ....

1

人,你正在做的aspx頁面的一切。一般來說,這些事情都是在後面的代碼中完成的,在這些代碼中,您可以使用ADO.NET對發生的情況進行更多的控制,並且可以在try-catch中調用存儲過程。

也許還有一種方法可以設置異常處理事件從您正在使用的aspx標記頁面觸發,但我認爲如果您從aspx.cs文件中的方法加載數據,則會更好。

這是通常在現實世界的應用程序中所做的。

+0

感謝您的意見。 – Xitrum