SqlError Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Собирает сведения, относящиеся к предупреждению или ошибке, возвращаемой сервером SQL Server.
public ref class SqlError sealed
[System.Serializable]
public sealed class SqlError
public sealed class SqlError
[<System.Serializable>]
type SqlError = class
type SqlError = class
Public NotInheritable Class SqlError
- Наследование
-
SqlError
- Атрибуты
Примеры
В следующем примере каждый из них SqlError отображается в SqlErrorCollection коллекции.
using Microsoft.Data.SqlClient;
using System.Text;
class Program
{
static void Main()
{
string s = GetConnectionString();
ShowSqlException(s);
Console.ReadLine();
}
public static void ShowSqlException(string connectionString)
{
string queryString = "EXECUTE NonExistantStoredProcedure";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
try
{
command.Connection.Open();
command.ExecuteNonQuery();
}
catch (SqlException ex)
{
DisplaySqlErrors(ex);
}
}
}
private static void DisplaySqlErrors(SqlException exception)
{
for (int i = 0; i < exception.Errors.Count; i++)
{
Console.WriteLine("Index #" + i + "\n" +
"Error: " + exception.Errors[i].ToString() + "\n");
}
Console.ReadLine();
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
return "Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI";
}
}
Комментарии
Этот класс создается поставщиком данных платформа .NET Framework для SQL Server при возникновении ошибки. Экземпляр SqlError создается и управляется классом SqlErrorCollection, который, в свою очередь, создается классом SqlException .
Сообщения с уровнем важности 10 и менее являются информационными и обозначают неполадки, вызванные ошибками во введенных пользователем данных. Уровни серьезности от 11 до 16 создаются пользователем и могут быть исправлены пользователем. Уровни важности с 17 по 25 указывают на ошибки программного обеспечения или оборудования. При возникновении ошибки уровня 17, 18 или 19 можно продолжить работу, хотя выполнение определенной инструкции может быть невозможно.
SqlConnection остается открытым, если уровень важности не превышает 19. Когда уровень важности превышает 20, сервер обычно закрывает SqlConnection. Тем не менее, пользователь может опять открыть подключение и продолжить работу. В обоих случаях выполняющим команду методом создается SqlException.
Дополнительные сведения об ошибках, создаваемых SQL Server, см. в статье Причина и разрешение ошибок ядра СУБД. Дополнительные сведения об уровнях серьезности см. в разделе Серьезность ошибок ядра СУБД.
Свойства
Class |
Возвращает уровень важности ошибки, возвращаемой SQL Server. |
LineNumber |
Возвращает номер содержащей ошибку строки пакета команд Transact-SQL или хранимой процедуры. |
Message |
Возвращает текст, описывающий ошибку. |
Number |
Возвращает число, определяющее тип ошибки. |
Procedure |
Возвращает имя вызвавшей ошибку хранимой процедуры или удаленного вызова процедур (RPC). |
Server |
Возвращает имя вызвавшего ошибку экземпляра SQL Server. |
Source |
Возвращает имя вызвавшего ошибку поставщика. |
State |
Некоторые сообщения об ошибках могут возникнуть в нескольких точках кода компонента Компонент Database Engine. Например, ошибка 1105 может возникнуть при различных условиях. Каждое условие, которое вызывает ошибку, присваивает уникальный код состояния. |
Методы
ToString() |
Возвращает полный текст сообщения об ошибке. |