moje pytanie jest jak obsłużyć wyjątek sql w języku C#, czy istnieje, aby sprawdzić, jaki rodzaj wyjątków sql rzuca z warstwy dostępu do danych? Na przykład, jeśli db rzuca wyjątkowy wyjątek ograniczenia lub wyjątek klucza obcego, czy istnieje sposób, aby go złapać z C#? jaki jest schemat obsługi wyjątków, którego używasz w tym wyjątku db?Jak obsługiwać określone wyjątki SQL (na przykład wyjątkowe naruszenie ograniczenia) w języku C#?
Odpowiedz
Złap SQLException
catch(SqlException ex)
{
foreach(SqlError error in ex.Errors)
{
}
}
można sprawdzić wiadomość tekstową, numer i nie przełączać sprawę na nim wiedzieć błąd ...
try {
}
catch (SqlException ex)
{
string str;
str = "Source:"+ ex.Source;
str += "\n"+ "Number:"+ ex.Number.ToString();
str += "\n"+ "Message:"+ ex.Message;
str += "\n"+ "Class:"+ ex.Class.ToString();
str += "\n"+ "Procedure:"+ ex.Procedure.ToString();
str += "\n"+ "Line Number:"+ex.LineNumber.ToString();
str += "\n"+ "Server:"+ ex.Server.ToString();
Console.WriteLine (str, "Database Exception");
}
Wystarczy popatrzeć na klasy documentation of the SqlException, w szczególności , na przykład, na przykład, powinno pozwolić ci na określenie, który typ wyjątku SqlException (unikalne ograniczenie, klucz obcy, ...) wystąpił.
Możesz użyć filtrowanych wyjątków, aby wychwycić określone błędy. VB.NET:
Try
...
Catch ex as SqlException When ex.Number = ...
...
Catch ex as SqlException When ex.Number = ...
...
End Try
C# (wersja 6 i powyżej):
try
{
...
}
catch (SqlException ex) when (ex.Number == ...)
{
...
}
catch (SqlException ex) when (ex.Number == ...)
{
...
}
To zależy od wyjątku i Twojego systemu bazodanowego. Baza danych będzie generować unikalny kod błędu dla konkretnych rzeczy, takich jak ograniczenia, uprawnienia itp., Ale ten kod błędu waha się od DB do DB. Oracle ma MASYWNY pdf (2000+ stron), który wymienia każdy możliwy błąd, który może rzucić i jestem pewien, że Sqlserver ma coś podobnego. Chodzi mi o to, że szukasz określonych kodów błędów, musisz trp tylko tych w sekcji catch i obsługiwać je inaczej niż wiele innych błędów, które możesz dostać.
- 1. Jak obsługiwać wyjątki PDO
- 2. Jak obsługiwać wyjątki?
- 3. Laravel sprawdź naruszenie ograniczenia
- 4. Naruszenie ograniczenia obciążenia w Websphere
- 5. jak obsługiwać wyjątki w junit
- 6. W języku C# jak zdefiniować własne wyjątki?
- 7. Jak obsługiwać wyjątki bazy danych w Django
- 8. Jak obsługiwać różne wyjątki w zadaniu?
- 9. PowerShell 2.0 i jak obsługiwać wyjątki?
- 10. Jak obsługiwać ogólne wyjątki w Asp.Net MVC?
- 11. Jak obsługiwać wyjątki WinRT, które powodują wyjątek?
- 12. Wyjątki w Pythonie: EAFP i co jest naprawdę wyjątkowe?
- 13. sprawdza naruszenie ograniczenia przed utrwaleniem podmiotu
- 14. Jak prawidłowo obsługiwać ważne niezaznaczone wyjątki
- 15. Przykład ustawy Amdahla w języku C#
- 16. Jak obsługiwać wyjątki z wątku BackgroundWorker?
- 17. Gdzie mam obsługiwać asynchroniczne wyjątki?
- 18. Entity Framework: Jak prawidłowo obsługiwać wyjątki, które występują z powodu ograniczeń SQL
- 19. Jak działają wyjątki (za kulisami) w języku C#
- 20. Jak powinienem obsługiwać wyjątki w konstruktorze kontrolera w WebAPI?
- 21. Android: w jaki sposób powinienem obsługiwać wyjątki dostępu DB?
- 22. MySQL: ALTER IGNORE TABLE daje "naruszenie ograniczenia integralności"
- 23. Jak obsługiwać niezatłoczone wyjątki w aplikacji ASP.NET MVC 3?
- 24. Wyjątkowe ograniczenie Oracle z wyrażeniem
- 25. Co to są sprawdzane wyjątki w języku Java/C#?
- 26. Jak obsługiwać różne wyjątki uwierzytelniania w Spring security 3.1?
- 27. Jak obsługiwać wyjątki w playframework 2 Async bloku (Scala)
- 28. Dziedzicz wyjątki w C++
- 29. Niestandardowe wyjątki w C++
- 30. Czy powinienem sprawdzić wyjątkowe ograniczenie za pomocą php?