IsBeforeReadState
Свойство информирует о возможности работы с полями выборки данных.
Сразу после открытия выборки данных (т.e. после выполнения одного из методов DbCommand.ExecuteReader
()…) доступ к полям (значениям) этой выборки невозможен – необходимо предварительно выполнить хотя бы один раз метод Read
(), который устанавливает текущую строку выборки данных. Поэтому перед вызовом методов, работающих с полями выборки данных, необходимо убедиться, что метод Read
() применительно к текущей выборке данных был вызван.
Примечание
Свойство IsBeforeReadState можно использовать только в приложениях, разработанных специально для работы с СУБД ЛИНТЕР.
Декларация
public bool IsBeforeReadState {get;};
Значение свойства
Значение типа System.Boolean:
-
true – значения полей выборки данных доступны, т.е. метод
Read
() отработал; -
false – значения полей выборки данных недоступны, необходимо предварительно вызвать метод
Read
() (значение по умолчанию).
Исключения
Отсутствуют.
Пример
// C# using System; using System.Data; using System.Data.Common; using System.Data.LinterClient; class IsBeforeReadStateSample { static void Main() { // Создание фабрики классов провайдера DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.LinterClient"); // Соединение с БД DbConnection con = factory.CreateConnection(); con.ConnectionString = "User ID=SYSTEM;Password=MANAGER8;Data Source=LOCAL"; con.Open(); // Создание объекта DbCommand DbCommand cmd = factory.CreateCommand(); cmd.Connection = con; // Формирование текста SQL-запроса cmd.CommandText = "select * from auto"; // Выполнение SQL-запроса DbDataReader reader = cmd.ExecuteReader(); // Обработка результатов запроса if (((LinterDbDataReader)reader).IsBeforeReadState) { reader.Read(); } for (int i = 0; i < reader.FieldCount; i++) { Console.Write(reader.GetValue(i) + "\t"); } // Освобождение ресурсов reader.Dispose(); cmd.Dispose(); con.Dispose(); } }