Wenn eine Ausnahme auftritt, wenn der SqlDataSource ausgeführt wird, es feuert seine entsprechende Post-Action-Ereignis - Ausgewählte, in diesem Fall. Sie können optional einen Ereignishandler für dieses Ereignis erstellen und im Ereignishandler angeben, dass Sie die Ausnahme behandelt haben.
Dieses Diagramm zeigt, wie diese Interaktion mit der ObjectDataSource funktioniert (das Konzept ist dasselbe wie mit dem SqlDataSource-Steuerelement). Wenn Sie das folgende Diagramm untersuchen, ersetzen Sie die Wörter "ObjectDataSource" durch "SqlDataSource" und "Underlying Object" durch "Database", damit es für die SqlDataSource relevant ist.

Wie Sie sehen können, ist die Auswahl-Ereignis ausgelöst, bevor die Daten in die Datenbank und das ausgewählte Ereignis ausgelöst wird des Feldes verwiesen, nachdem die Daten zurückkommt (oder, wenn es eine Ausnahme).
Sie können einen Selected-Ereignishandler auf Ihrer Seite erstellen und prüfen, ob eine Ausnahmebedingung aufgetreten ist, und entscheiden, ob Sie sie selbst behandeln möchten. Fredrik Normen hat einen guten Blog-Eintrag dazu: Handle the data-source control exception by your own.
Zusätzliches Lesematerial: Accessing and Updating Data in ASP.NET: Examining the Data Source Control's Events.
Glückliche Programmierung!
Das Problem ist, dass wir mehrere Prozeduren haben, die auf dem Entwicklungsserver funktionieren, aber sehr lange dauern, um auf die Produktionsversion geladen zu werden (verschiedene SQL Server-Versionen). Also, bis wir alle identifizieren und beheben, möchten wir den Timeout-Fehler durch etwas benutzerfreundlicher ersetzen :) –
In diesem Fall verwenden Sie DataSource und DataBind. – RichardOD
Es gibt keine Möglichkeit, die durch Timeouts im Sql-DataSource-Steuerelement verursachten Ausnahmen abzufangen - daher wird die "Oldschool" -Methode von DataSource und DataBind in diesem Szenario besser funktionieren.Hier ist ein Codebeispiel: http://msdn.microsoft.com/en-us/library/fkx0cy6d.aspx – RichardOD