Message

Предоставляет текст сообщения, которое описывает текущее исключение.

Текст сообщения Message должен содержать полное описание кода завершения (ошибки) и, по возможности, объяснение способа устранения ошибки. Значение свойства Message включается в сведения, возвращаемые методом ToString.

Свойство Message устанавливается только при создании исключения Exception, значение по умолчанию отсутствует, потому что в ADO.NET-провайдере СУБД ЛИНТЕР нет конструктора без параметров для класса LinterSqlException.

Примечание

Полный список сообщений LinterSqlException и рекомендации по устранению ошибок см. в документе «СУБД ЛИНТЕР. Справочник кодов завершения».

Язык сообщения Message может быть английский или русский, в зависимости от языка текущего потока:

System.Threading.Thread.CurrentThread.CurrentUICulture.

Английские текстовые сообщения находятся в сборке System.Data.LinterClient.dll.

Русские текстовые сообщения находятся в сборке System.Data.LinterClient.resources.dll, которая расположена в подкаталоге /bin/ru-RU установочного каталога СУБД ЛИНТЕР. Для правильной загрузки русских сообщений данная сборка должна быть установлена в GAC (это происходит при установке в GAC основной сборки System.Data.LinterClient.dll). Если установка в GAC не выполняется, то в локальном каталоге приложения надо создать подкаталог /ru-RU и скопировать в него сборку System.Data.LinterClient.resources.dll.

Декларация
public virtual string Message {get;};
Значение свойства

Текстовая расшифровка кода завершения с объяснением причин исключения или пустая строка (""), если в ADO.NET провайдере отсутствует расшифровка кода завершения.

Исключения

Отсутствуют.

Пример
// В данном примере создается метод Execute, в котором генерируется исключение
// LinterSqlException при попытке выполнить неизвестную хранимую процедуру. Данный
// метод вызывается два раза из основного метода Main. Перед каждым вызовом метода
// Execute в методе Main устанавливается язык текущего потока: первый раз
// устанавливается язык “en-US”, второй раз – “ru-RU”.
// C#
using System;
using System.Data.LinterClient;
using System.Threading;
using System.Globalization;

class Program
{
  static void Main()
  {
    Console.WriteLine("Язык en-US");
    // Установка языка текущего потока “en-US”
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
    // Выполнение метода, в котором генерируется исключение
    Execute();

    Console.WriteLine("Язык ru-RU");
    // Установка языка текущего потока “ru-RU”
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru-RU");
    // Выполнение метода, в котором генерируется исключение
    Execute();
  }

  private static void Execute()
  {
    LinterDbConnection con = null;

    try
    {
      // Создание объекта соединение
      con = new LinterDbConnection("UserID=SYSTEM;Password=MANAGER8");

      // Создание объекта команда
      LinterDbCommand cmd = new LinterDbCommand("execute NOT_EXIST", con);

      // Открытие соединения
      con.Open();

      // Выполнение команды, которая генерирует исключение LinterSqlException
      cmd.ExecuteNonQuery();
    }
    catch (LinterSqlException ex)
    {
      // Обработка исключений СУБД ЛИНТЕР
      Console.WriteLine(
        "Текст сообщения: " + ex.Message + "\n" +
        "Код СУБД ЛИНТЕР: " + ex.Number + "\n");
    }
    catch (Exception ex)
    {
      // Обработка исключений других типов
      Console.WriteLine(
        "Текст сообщения: " + ex.Message + "\n" +
        "Тип исключения: " + ex.GetType() + "\n");
    }
    finally
    {
      // Освобождение ресурсов
      if (con != null)
      {
        con.Close();
      }
    }
  }
}
Результат выполнения примера
Язык en-US
Текст сообщения: [Linter Code] unknown procedure
Код СУБД ЛИНТЕР: 2229

Язык ru-RU
Текст сообщения: [Код СУБД ЛИНТЕР] неизвестная процедура
Код СУБД ЛИНТЕР: 2229