Nein, sollte es nicht möglich sein, dass SqlException.Number
0 ist, mit Ausnahme der folgenden Fälle:
- Read-only Ausfall Routing
- Server hatte schwere Fehler Verarbeitungsabfrage
- Verarbeitete Löschung während Ergebnisse Parsen
- fehlgeschlagen Sie nicht Benutzerinstanz
erstellen usi Unter der Annahme, Wenn Sie nur Lesezugriff für SQL Server 2016 verwenden, kann keiner dieser Fälle auf das von Ihnen beschriebene Szenario angewendet werden.
Verbleibende Fälle sind entweder eine von Null verschiedene Zahl von sysmessages
, oder ein Win32-Fehlercode (der, da 0 == ERROR_SUCCESS
, auch niemals Null wäre).
In der Praxis sehen Sie etwas in der Art von "Konnte keinen SSPI-Kontext erstellen" oder "Ein Transportfehler ist beim Senden der Anfrage an den Server aufgetreten" oder "Eine bestehende Verbindung wurde zwangsweise geschlossen Remote-Host ", und diese haben auch Win32-Fehlercodes ungleich Null.
Referenz: https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlerror.number(v=vs.110).aspx
Es kann sich lohnen, unter Hinweis darauf, dass SqlException.Number
Synonym für das in seiner Errors
Array Number
Eigenschaft des ersten Eintrags ist, und dass Array könnte mehr als ein Element enthalten.
überprüfen Sie dies: https: //msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlerror.number (v = vs.110) .aspx – TheGameiswar
und dies: https: // msdn. microsoft.com/en-us/library/system.data.sqlclient.sqlexception.number(v=vs.110).aspx – TheGameiswar
meinst du unterbrochene Konnektivität, wenn eine SqlConnection bereits zuvor geöffnet wurde? Die Client-Komponenten würden in diesem Fall immer noch die Nachricht "Ein Transport-Level-Fehler ist aufgetreten ..." werfen, eine Ausnahme hat eine Nummer (19 - Physische Verbindung ist nicht verwendbar). Es sind * jedoch Fehlerzustände mit der Nummer == 0 definiert. – dlatikay