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