Gewusst wie: behandeln von Ausnahmen mit einer SqlDataSource
Habe ich ein SqlDataSource, liefert Daten zu meinem GridView. Das ist alles, was ich benutze auf meiner form, damit ich KEINEN code hinter überhaupt. Aber irgendwo muss ich einen TRY-CATCH-block, falls meine Verbindung zu bekommen ist verloren. Welchen code muss ich den Ort, wo?
Wenn ich einen Fehler ich will meine lblMessage Text "Keine Verbindung".
Bearbeiten
Mein GridView in meine Maschine.aspx
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
Height="209px" PageSize="7" Width="331px" AllowSorting="True"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="Total" HeaderText="Total" ReadOnly="True"
SortExpression="Total" DataFormatString="{0:R#,###,###}" >
<HeaderStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="b134_rmcid" HeaderText="Machine" ReadOnly="True"
SortExpression="b134_rmcid" >
<HeaderStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="b134_recdate" DataFormatString="{0:d/MM/yyyy}"
HeaderText="Date" ReadOnly="True" SortExpression="b134_recdate" >
<HeaderStyle HorizontalAlign="Left" />
</asp:BoundField>
</Columns>
</asp:GridView>
Meine Verbindung rechts unter meinem Gridview in meine Maschine.aspx
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ODBC_ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ODBC_ConnectionString.ProviderName %>"
SelectCommand="SELECT SUM(b134_nettpay) AS Total, b134_rmcid, b134_recdate FROM B134HRE"
onselected="SqlDataSource1_Selected">
</asp:SqlDataSource>
Mein Code in meinem Code-Behind-Datei bei meiner Maschine.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
lblError.Text = "hello there";
SqlDataSource1.Selected += new SqlDataSourceStatusEventHandler(SqlDataSource1_Selected);
}
protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
if (e.ExceptionHandled)
{
lblError.Text = "There is a problem";
}
}
Wird und immer noch für einige bereit, wenn ich einen Haltepunkt in meinem Ausgewählten Ereignis, das es gar nicht um es zu bekommen???
Warum?
InformationsquelleAutor Etienne | 2009-04-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das SqlDataSource hat eine
Selected
Veranstaltung. Fügen Sie einen Ereignishandler für das Ereignis-wie so, und behandeln alle Fehler (zeigen eine informative Nachricht, etc) in dieser Prozedur.Sorry, aber du gehst zu haben, um einige Codes in der code-behind -!
Bearbeiten
Blick auf deinen code, ich glaube nicht, dass Sie jemals binden Sie Ihre GridView, so dass Ihre SqlDataSource wird nie versuchen, wählen Sie die Daten aus Ihrer Datenbank.
In Ihrem Page_Load-Methode den folgenden code hinzu:
Weiter Bearbeiten
Ändern versuchen "onselected" zu "OnSelected" auf Ihrem SqlDataSource und entfernen Sie die Zeile zum binden der Ereignishandler im code-behind.
Bin ich überfragt wenn das nicht funktioniert, Sie haben im Grunde bekam die einfachste mögliche Beispiel.
Noch weiter Bearbeiten
Versuchen, diese stattdessen
hast du Draht, der Ereignisprozedur beim laden von Seiten oder init: geben Sie einfach "GridView1.Ausgewählt +=" und drücken zweimal tab. Einfach!
In der code-behind, in der page_init-event-handler -, Draht-Ereignis-handler durch Eingabe von "GridView1.Ausgewählt += new SqlDataSourceStatusEventHandler(GridView1_Selected);", wobei "GridView1" ist die Id des GridView-Steuerelements.
Cool, ich Tat dies, und noch immer, wenn ich eine Pause in meinem SqlDataSource1_Selected, falls es nicht gehen. Ich habe auch platziert, verdrahtet die Veranstaltung in der OnInit.
Ist es tatsächlich die Auswahl etwas? Sie finden diese Artikel hilfreich: msdn.microsoft.com/en-us/library/2ccyd347(VS.71).aspx - ich kann nicht mehr, fürchte ich.
InformationsquelleAutor Paul Suart
müssen Sie behandeln die Fehler aus dem code hinter Ihrer Gridview_ItemInserting oder gridview_itemupdating so wie Feuer, bevor Sie Ihren code einzureichen sind die sql-Kontrolle.
tun, also auch für die Aktualisierung
InformationsquelleAutor Jesse Mwangi
Ich glaube, Sie behandeln möchten, wird das Ausgewählte Ereignis von der SQLDataSource, und überprüfen Sie die Ereignis-argument für die Ausnahme.
Siehe msdn.microsoft.com/en-us/library/....
InformationsquelleAutor John Saunders
Erstellen Sie eine Ereignisprozedur für das Gewählte Ereignis von der SqlDataSource, testen, ob eine Ausnahme aufgetreten ist, führen Sie beliebige Fehler Berichterstattung, die Sie möchten, und geben Sie dann, dass Sie jetzt den Fehler behandelt.
InformationsquelleAutor Lachlan Wetherall
InformationsquelleAutor Jesse Mwangi