OracleDataReader Класс
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет способ чтения потока строк данных из источника только в прямом порядке. Этот класс не наследуется.
public ref class OracleDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public ref class OracleDataReader sealed : System::Data::Common::DbDataReader
public sealed class OracleDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
public sealed class OracleDataReader : System.Data.Common.DbDataReader
type OracleDataReader = class
inherit MarshalByRefObject
interface IDataReader
interface IDisposable
interface IDataRecord
interface IEnumerable
type OracleDataReader = class
inherit DbDataReader
Public NotInheritable Class OracleDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Public NotInheritable Class OracleDataReader
Inherits DbDataReader
- Наследование
- Наследование
- Реализации
В следующем примере создаются OracleConnection, OracleCommandи OracleDataReader. Этот пример считывает данные, записывая их в консоль. Наконец, пример закрывает OracleDataReader, а затем .OracleConnection
public void ReadData(string connectionString)
{
string queryString = "SELECT EmpNo, EName FROM Emp";
using (OracleConnection connection = new OracleConnection(connectionString))
{
OracleCommand command = new OracleCommand(queryString, connection);
connection.Open();
using(OracleDataReader reader = command.ExecuteReader())
{
// Always call Read before accessing data.
while (reader.Read())
{
Console.WriteLine(reader.GetInt32(0) + ", " + reader.GetString(1));
}
}
}
}
Public Sub ReadData(ByVal connectionString As String)
Dim queryString As String = "SELECT EmpNo, EName FROM Emp"
Using connection As New OracleConnection(connectionString)
Dim command As New OracleCommand(queryString, connection)
connection.Open()
Using reader As OracleDataReader = command.ExecuteReader()
' Always call Read before accessing data.
While reader.Read()
Console.WriteLine(reader.GetInt32(0).ToString() + ", " _
+ reader.GetString(1))
End While
End Using
End Using
End Sub
Чтобы создать OracleDataReader, необходимо вызвать ExecuteReader метод OracleCommand объекта , а не напрямую с помощью конструктора.
Изменения, внесенные в набор результатов другим процессом или потоком во время чтения данных, могут быть видны пользователю OracleDataReader.
IsClosed и RecordsAffected являются единственными свойствами, которые могут быть вызваны после закрытия OracleDataReader. В некоторых случаях перед вызовом необходимо вызвать CloseRecordsAffected.
В любой OracleDataReader момент времени можно открыть несколько.
В следующих двух примерах Visual Basic показано, как использовать OracleDataReader для получения Oracle REF CURSOR
. В этих примерах используются таблицы, определенные в схеме Oracle Scott/Tiger, для которых требуется следующий пакет PL/SQL и текст пакета. Чтобы использовать примеры, их необходимо создать на сервере.
Создайте на сервере Oracle следующий пакет Oracle.
CREATE OR REPLACE PACKAGE CURSPKG AS
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE OPEN_ONE_CURSOR (N_EMPNO IN NUMBER,
IO_CURSOR IN OUT T_CURSOR);
PROCEDURE OPEN_TWO_CURSORS (EMPCURSOR OUT T_CURSOR,
DEPTCURSOR OUT T_CURSOR);
END CURSPKG;
/
На сервере Oracle создайте следующий текст пакета Oracle.
CREATE OR REPLACE PACKAGE BODY CURSPKG AS
PROCEDURE OPEN_ONE_CURSOR (N_EMPNO IN NUMBER,
IO_CURSOR OUT T_CURSOR)
IS
V_CURSOR T_CURSOR;
BEGIN
IF N_EMPNO <> 0 THEN
OPEN V_CURSOR FOR
SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND EMP.EMPNO = N_EMPNO;
ELSE
OPEN V_CURSOR FOR
SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
END IF;
IO_CURSOR := V_CURSOR;
END OPEN_ONE_CURSOR;
PROCEDURE OPEN_TWO_CURSORS (EMPCURSOR OUT T_CURSOR,
DEPTCURSOR OUT T_CURSOR)
IS
V_CURSOR1 T_CURSOR;
V_CURSOR2 T_CURSOR;
BEGIN
OPEN V_CURSOR1 FOR SELECT * FROM EMP;
OPEN V_CURSOR2 FOR SELECT * FROM DEPT;
EMPCURSOR := V_CURSOR1;
DEPTCURSOR := V_CURSOR2;
END OPEN_TWO_CURSORS;
END CURSPKG;
/
В этом примере Visual Basic выполняется хранимая процедура PL/SQL, которая возвращает REF CURSOR
параметр и считывает значение как OracleDataReader.
Private Sub ReadOracleData(ByVal connectionString As String)
Dim connection As New OracleConnection(connectionString)
Dim command As New OracleCommand()
Dim reader As OracleDataReader
connection.Open()
command.Connection = connection
command.CommandText = "CURSPKG.OPEN_ONE_CURSOR"
command.CommandType = CommandType.StoredProcedure
command.Parameters.Add(New OracleParameter("N_EMPNO", OracleType.Number)).Value = 7369
command.Parameters.Add(New OracleParameter("IO_CURSOR", OracleType.Cursor)).Direction = ParameterDirection.Output
reader = command.ExecuteReader()
While (reader.Read())
' Do something with the values.
End While
reader.Close()
connection.Close()
End Sub
В этом примере Visual Basic выполняется хранимая процедура PL/SQL, которая возвращает два REF CURSOR
параметра и считывает значения с помощью OracleDataReader.
Private Sub ReadOracleData(ByVal connectionString As String)
Dim dataSet As New DataSet()
Dim connection As New OracleConnection(connectionString)
Dim command As New OracleCommand()
Dim reader As OracleDataReader
connection.Open()
command.Connection = connection
command.CommandText = "CURSPKG.OPEN_TWO_CURSORS"
command.CommandType = CommandType.StoredProcedure
command.Parameters.Add(New OracleParameter("EMPCURSOR", OracleType.Cursor)).Direction = ParameterDirection.Output
command.Parameters.Add(New OracleParameter("DEPTCURSOR", OracleType.Cursor)).Direction = ParameterDirection.Output
reader = command.ExecuteReader(CommandBehavior.CloseConnection)
While (reader.Read())
' Do something with the values.
End While
reader.NextResult()
While (reader.Read())
' Do something with the values.
End While
reader.Close()
connection.Close()
End Sub
Этот пример C# создает таблицу Oracle и загружает ее с данными. Этот пример необходимо выполнить перед выполнением последующего примера, в котором демонстрируется использование OracleDataReader для доступа к данным с помощью структур OracleType.
public void Setup(string connectionString)
{
OracleConnection connection = new OracleConnection(connectionString);
try
{
connection.Open();
OracleCommand command = connection.CreateCommand();
command.CommandText ="CREATE TABLE OracleTypesTable (MyVarchar2 varchar2(3000),MyNumber number(28,4) PRIMARY KEY,MyDate date, MyRaw raw(255))";
command.ExecuteNonQuery();
command.CommandText ="INSERT INTO OracleTypesTable VALUES ('test', 2, to_date('2000-01-11 12:54:01','yyyy-mm-dd hh24:mi:ss'), '0001020304')";
command.ExecuteNonQuery();
command.CommandText="SELECT * FROM OracleTypesTable";
}
catch(Exception)
{
}
finally
{
connection.Close();
}
}
В этом примере C# используется OracleDataReader для доступа к данным, а для отображения данных используется несколько OracleType структур.
public void ReadOracleTypesExample(string connectionString)
{
OracleConnection connection = new OracleConnection(connectionString);
connection.Open();
OracleCommand command = connection.CreateCommand();
try
{
command.CommandText = "SELECT * FROM OracleTypesTable";
OracleDataReader reader = command.ExecuteReader();
reader.Read();
//Using the Oracle specific getters for each type is faster than
//using GetOracleValue.
//First column, MyVarchar2, is a VARCHAR2 data type in Oracle Server
//and maps to OracleString.
OracleString oraclestring1 = reader.GetOracleString(0);
Console.WriteLine("OracleString " + oraclestring1.ToString());
//Second column, MyNumber, is a NUMBER data type in Oracle Server
//and maps to OracleNumber.
OracleNumber oraclenumber1 = reader.GetOracleNumber(1);
Console.WriteLine("OracleNumber " + oraclenumber1.ToString());
//Third column, MyDate, is a DATA data type in Oracle Server
//and maps to OracleDateTime.
OracleDateTime oracledatetime1 = reader.GetOracleDateTime(2);
Console.WriteLine("OracleDateTime " + oracledatetime1.ToString());
//Fourth column, MyRaw, is a RAW data type in Oracle Server and
//maps to OracleBinary.
OracleBinary oraclebinary1 = reader.GetOracleBinary(3);
//Calling value on a null OracleBinary throws
//OracleNullValueException; therefore, check for a null value.
if (oraclebinary1.IsNull==false)
{
foreach(byte b in oraclebinary1.Value)
{
Console.WriteLine("byte " + b.ToString());
}
}
reader.Close();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
connection.Close();
}
}
Depth |
Возвращает значение, показывающее глубину вложенности для текущей строки. |
Field |
Возвращает число столбцов в текущей строке. |
Has |
Получает значение, указывающее, содержит ли объект OracleDataReader одну или несколько строк. |
Is |
Указывает, закрыт ли объект OracleDataReader. |
Item[Int32] |
Возвращает значение указанного столбца в собственном формате при наличии заданного порядкового номера столбца. |
Item[String] |
Возвращает значение заданного столбца в собственном формате при наличии заданного имени столбца. |
Records |
Возвращает число строк, которые были изменены, вставлены или удалены инструкцией SQL. |
Visible |
Возвращает число не скрытых полей в DbDataReader. (Унаследовано от DbDataReader) |
Close() |
Закрывает объект OracleDataReader. |
Close |
Асинхронно закрывает объект DbDataReader. (Унаследовано от DbDataReader) |
Create |
Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
Dispose() |
Освобождает ресурсы, используемые данным объектом. |
Dispose() |
Освобождает все ресурсы, используемые текущим экземпляром класса DbDataReader. (Унаследовано от DbDataReader) |
Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые объектом DbDataReader, а при необходимости освобождает также управляемые ресурсы. (Унаследовано от DbDataReader) |
Dispose |
Асинхронно освобождает все ресурсы, используемые текущим экземпляром класса DbDataReader. (Унаследовано от DbDataReader) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Get |
Возвращает значение указанного столбца в виде логического значения. |
Get |
Возвращает значение указанного столбца в виде байта. |
Get |
Считывает поток байтов из указанного смещения столбца в буфер в виде массива, начиная с заданного смещения буфера. |
Get |
Возвращает значение указанного столбца в виде символа. |
Get |
Считывает поток символов из указанного смещения столбца в буфер как массив, начиная с заданного смещения буфера. |
Get |
Это асинхронная версия метода GetColumnSchema(DbDataReader).
Поставщики должны выполнить переопределение с помощью соответствующей реализации.
При необходимости можно учитывать |
Get |
Возвращает IDataReader для указанного порядкового номера столбца. |
Get |
Возвращает вложенный объект чтения данных для запрошенного столбца. (Унаследовано от DbDataReader) |
Get |
Получает имя исходного типа данных. |
Get |
Возвращает значение указанного столбца в виде объекта |
Get |
Возвращает объект DbDataReader для запрошенного порядкового номера столбца, который может быть переопределен с помощью зависящей от поставщика реализации. (Унаследовано от DbDataReader) |
Get |
Возвращает значение указанного столбца в виде объекта |
Get |
Возвращает значение указанного столбца в виде числа с плавающей запятой двойной точности. |
Get |
Возвращает перечислитель IEnumerator, который может использоваться для просмотра строк в модуле чтения данных. |
Get |
Возвращает тип Type, который является типом данных объекта. |
Get |
Возвращает значение указанного столбца в виде запрошенного типа. (Унаследовано от DbDataReader) |
Get |
Асинхронно возвращает значение указанного столбца в виде запрошенного типа. (Унаследовано от DbDataReader) |
Get |
Асинхронно возвращает значение указанного столбца в виде запрошенного типа. (Унаследовано от DbDataReader) |
Get |
Возвращает значение указанного столбца в виде числа с плавающей запятой с одиночной точностью. |
Get |
Возвращает значение заданного столбца в виде глобально-уникального идентификатора GUID. |
Get |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
Get |
Получает значение заданного столбца в виде 16-битового целого числа со знаком. |
Get |
Возвращает значение указанного столбца в виде 32-разрядного целого числа со знаком. |
Get |
Возвращает значение указанного столбца в виде 64-разрядного целого числа со знаком. |
Get |
Устаревшие..
Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject) |
Get |
Возвращает имя заданного столбца. |
Get |
Получает значение заданного столбца в виде объекта OracleBFile. |
Get |
Получает значение заданного столбца в виде объекта OracleBinary. |
Get |
Получает значение заданного столбца в виде объекта OracleDateTime. |
Get |
Получает значение заданного столбца в виде объекта OracleLob. |
Get |
Получает значение заданного столбца в виде объекта OracleMonthSpan. |
Get |
Получает значение заданного столбца в виде объекта OracleNumber. |
Get |
Получает значение заданного столбца в виде объекта OracleString. |
Get |
Получает значение заданного столбца в виде объекта OracleTimeSpan. |
Get |
Возвращает значение столбца в виде заданного порядкового номера в формате Oracle. |
Get |
Возвращает все столбцы атрибутов в текущей строке в формате Oracle. |
Get |
Возвращает порядковый номер столбца при наличии заданного имени столбца. |
Get |
Получает |
Get |
Получает |
Get |
Возвращает массив объектов, которые представляют собой значения типа, специфического для базового поставщика. |
Get |
Возвращает DataTable, описывающий метаданные о столбцах OracleDataReader. |
Get |
Это асинхронная версия метода GetSchemaTable().
Поставщики должны выполнить переопределение с помощью соответствующей реализации.
При необходимости можно учитывать |
Get |
Возвращает поток для получения данных из указанного столбца. (Унаследовано от DbDataReader) |
Get |
Возвращает значение заданного столбца в виде строки. |
Get |
Получает модуль чтения текста для извлечения данных из столбца. (Унаследовано от DbDataReader) |
Get |
Возвращает значение заданного столбца в виде объекта |
Get |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
Get |
Получает значение столбца с указанным порядковом номером в собственном формате. |
Get |
Заполняет массив объектов значениями столбцов текущей строки. |
Initialize |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
Is |
Получает значение, указывающее, содержит ли столбец несуществующие или пропущенные значения. |
Is |
Асинхронно получает значение, указывающее, содержит ли столбец несуществующие или пропущенные значения. (Унаследовано от DbDataReader) |
Is |
Асинхронно получает значение, указывающее, содержит ли столбец несуществующие или пропущенные значения. (Унаследовано от DbDataReader) |
Memberwise |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
Memberwise |
Создает неполную копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject) |
Next |
Перемещает OracleDataReader к следующему результату. |
Next |
Асинхронно перемещает модуль чтения данных к следующему результату при чтении результатов из пакета инструкций. (Унаследовано от DbDataReader) |
Next |
Асинхронно перемещает модуль чтения данных к следующему результату при чтении результатов из пакета инструкций. (Унаследовано от DbDataReader) |
Read() |
Перемещает OracleDataReader к следующей записи. |
Read |
Асинхронно перемещает модуль чтения к следующей записи в результирующем наборе. (Унаследовано от DbDataReader) |
Read |
Асинхронно перемещает модуль чтения к следующей записи в результирующем наборе. (Унаследовано от DbDataReader) |
To |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
IData |
Описание этого члена см. в разделе GetData(Int32). (Унаследовано от DbDataReader) |
IEnumerable. |
Возвращает перечислитель, который осуществляет итерацию по коллекции. |
Can |
Получает значение, которое указывает, может ли DbDataReader получить схему столбца. |
Get |
Получает схему столбца (коллекцию DbColumn) для DbDataReader. |
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
Of |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
As |
Позволяет осуществлять параллельный запрос. |
As |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |
Продукт | Версии |
---|---|
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: