OracleDataReader Sınıf

Tanım

Bir veri kaynağından yalnızca ileriye doğru veri satırları akışını okumanın bir yolunu sağlar. Bu sınıf devralınamaz.

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
Devralma
OracleDataReader
Devralma
Uygulamalar

Örnekler

Aşağıdaki örnek bir OracleConnection, OracleCommandve OracleDataReaderoluşturur. Örnek, verileri okuyup konsola yazar. Son olarak, örnek öğesini ve ardından öğesini OracleConnectionkapatırOracleDataReader.

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

Açıklamalar

oluşturmak OracleDataReaderiçin, doğrudan bir oluşturucu kullanmak yerine nesnesinin OracleCommand yöntemini çağırmanız ExecuteReader gerekir.

Veriler okunurken başka bir işlem veya iş parçacığı tarafından bir sonuç kümesinde yapılan değişiklikler, kullanıcı tarafından OracleDataReadergörülebilir.

IsClosed ve RecordsAffected kapatıldıktan sonra OracleDataReader çağırabileceğiniz tek özelliklerdir. Bazı durumlarda, çağrısı yapmadan önce aramanız CloseRecordsAffectedgerekir.

Herhangi bir zamanda birden OracleDataReader fazla açık olabilir.

Aşağıdaki iki Visual Basic örneğinde Oracle OracleDataReaderREF CURSORalmak için nasıl kullanılacağı gösterilmektedir. Bu örneklerde Oracle Scott/Tiger şemasında tanımlanan ve aşağıdaki PL/SQL paketi ile paket gövdesini gerektiren tablolar kullanılır. Örnekleri kullanmak için bunları sunucunuzda oluşturmanız gerekir.

Oracle sunucusunda aşağıdaki Oracle paketini oluşturun.

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 sunucusunda aşağıdaki Oracle paket gövdesini oluşturun.

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;  
/  

Bu Visual Basic örneği, parametre REF CURSOR döndüren bir PL/SQL saklı yordamı yürütür ve değeri olarak OracleDataReaderokur.

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  

Bu Visual Basic örneği, iki REF CURSOR parametre döndüren bir PL/SQL saklı yordamı yürütür ve kullanarak OracleDataReaderdeğerleri okur.

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  

Bu C# örneği bir Oracle tablosu oluşturur ve bunu verilerle yükler. OracleType yapılarını kullanarak verilere erişmek için bir OracleDataReader kullanmayı gösteren sonraki örneği çalıştırmadan önce bu örneği çalıştırmanız gerekir.

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();  
   }  
}  

Bu C# örneği verilere erişmek için bir OracleDataReader kullanır ve verileri görüntülemek için çeşitli OracleType yapılar kullanır.

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();  
   }  
}  

Özellikler

Depth

Geçerli satır için iç içe yerleştirme derinliğini gösteren bir değer alır.

FieldCount

Geçerli satırdaki sütun sayısını alır.

HasRows

öğesinin bir veya daha fazla satır içerdiğini OracleDataReader belirten bir değer alır.

IsClosed

öğesinin OracleDataReader kapatılıp kapatılmadığını gösterir.

Item[Int32]

Belirtilen sütunun değerini, sütun sırasıyla yerel biçiminde alır.

Item[String]

Belirtilen sütunun değerini, sütun adı verilen yerel biçiminde alır.

RecordsAffected

SQL deyiminin yürütülmesiyle değiştirilen, eklenen veya silinen satır sayısını alır.

VisibleFieldCount

içinde DbDataReader gizlenmeyen alanların sayısını alır.

(Devralındığı yer: DbDataReader)

Yöntemler

Close()

OracleDataReader Nesneyi kapatır.

CloseAsync()

Nesneyi zaman uyumsuz olarak kapatır DbDataReader .

(Devralındığı yer: DbDataReader)
CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
Dispose()

Bu nesne tarafından kullanılan kaynakları serbest bırakır.

Dispose()

DbDataReader sınıfının geçerli örneği tarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: DbDataReader)
Dispose(Boolean)

DbDataReader tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır.

(Devralındığı yer: DbDataReader)
DisposeAsync()

Sınıfın geçerli örneği DbDataReader tarafından kullanılan tüm kaynakları zaman uyumsuz olarak serbest bırakır.

(Devralındığı yer: DbDataReader)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetBoolean(Int32)

Belirtilen sütunun değerini Boole değeri olarak alır.

GetByte(Int32)

Belirtilen sütunun değerini bayt olarak alır.

GetBytes(Int32, Int64, Byte[], Int32, Int32)

Belirtilen sütun uzaklığından arabelleğe verilen arabellek uzaklığından başlayarak bir dizi olarak bayt akışını okur.

GetChar(Int32)

Belirtilen sütunun değerini karakter olarak alır.

GetChars(Int32, Int64, Char[], Int32, Int32)

Belirtilen sütun uzaklığından arabelleğe verilen arabellek uzaklığından başlayarak bir dizi olarak bir karakter akışı okur.

GetColumnSchemaAsync(CancellationToken)

Bu, zaman uyumsuz sürümüdür GetColumnSchema(DbDataReader). Sağlayıcılar uygun bir uygulamayla geçersiz kılmalıdır. cancellationToken isteğe bağlı olarak kabul edilebilir. Varsayılan uygulama zaman uyumlu GetColumnSchema(DbDataReader) çağrıyı çağırır ve tamamlanmış bir görev döndürür. Varsayılan uygulama, zaten iptal edilmiş bir geçirildiyse iptal edilmiş cancellationTokenbir görev döndürür. tarafından GetColumnSchema(DbDataReader) oluşan özel durumlar, döndürülen Görev Özel Durumu özelliği aracılığıyla iletilecektir.

(Devralındığı yer: DbDataReader)
GetData(Int32)

Belirtilen sütun sıralı için bir IDataReader döndürür.

GetData(Int32)

İstenen sütun için iç içe veri okuyucu döndürür.

(Devralındığı yer: DbDataReader)
GetDataTypeName(Int32)

Kaynak veri türünün adını alır.

GetDateTime(Int32)

Belirtilen sütunun değerini nesne DateTime olarak alır.

GetDbDataReader(Int32)

DbDataReader İstenen sütun sıralı için sağlayıcıya özgü bir uygulamayla geçersiz kılınabilecek bir nesne döndürür.

(Devralındığı yer: DbDataReader)
GetDecimal(Int32)

Belirtilen sütunun değerini nesne Decimal olarak alır.

GetDouble(Int32)

Belirtilen sütunun değerini çift duyarlıklı kayan nokta numarası olarak alır.

GetEnumerator()

Veri okuyucudaki satırlar arasında yineleme yapmak için kullanılabilecek bir IEnumerator döndürür.

GetFieldType(Int32)

Nesnenin Type veri türü olan öğesini alır.

GetFieldValue<T>(Int32)

İstenen tür olarak belirtilen sütunun değerini alır.

(Devralındığı yer: DbDataReader)
GetFieldValueAsync<T>(Int32)

Belirtilen sütunun değerini istenen tür olarak zaman uyumsuz olarak alır.

(Devralındığı yer: DbDataReader)
GetFieldValueAsync<T>(Int32, CancellationToken)

Belirtilen sütunun değerini istenen tür olarak zaman uyumsuz olarak alır.

(Devralındığı yer: DbDataReader)
GetFloat(Int32)

Belirtilen sütunun değerini tek duyarlıklı kayan noktalı sayı olarak alır.

GetGuid(Int32)

Belirtilen sütunun değerini genel olarak benzersiz tanımlayıcı (GUID) olarak alır.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetInt16(Int32)

Belirtilen sütunun değerini 16 bit imzalı tamsayı olarak alır.

GetInt32(Int32)

Belirtilen sütunun değerini 32 bit imzalı tamsayı olarak alır.

GetInt64(Int32)

Belirtilen sütunun değerini 64 bit işaretli tamsayı olarak alır.

GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetName(Int32)

Belirtilen sütunun adını alır.

GetOracleBFile(Int32)

Belirtilen sütunun değerini nesne OracleBFile olarak alır.

GetOracleBinary(Int32)

Belirtilen sütunun değerini nesne OracleBinary olarak alır.

GetOracleDateTime(Int32)

Belirtilen sütunun değerini nesne OracleDateTime olarak alır.

GetOracleLob(Int32)

Belirtilen sütunun değerini nesne OracleLob olarak alır.

GetOracleMonthSpan(Int32)

Belirtilen sütunun değerini nesne OracleMonthSpan olarak alır.

GetOracleNumber(Int32)

Belirtilen sütunun değerini nesne OracleNumber olarak alır.

GetOracleString(Int32)

Belirtilen sütunun değerini nesne OracleString olarak alır.

GetOracleTimeSpan(Int32)

Belirtilen sütunun değerini nesne OracleTimeSpan olarak alır.

GetOracleValue(Int32)

Belirtilen sıradaki sütunun değerini Oracle biçiminde alır.

GetOracleValues(Object[])

Geçerli satırdaki tüm öznitelik sütunlarını Oracle biçiminde alır.

GetOrdinal(String)

Sütunun adı verilip sütun sırasını alır.

GetProviderSpecificFieldType(Int32)

Temel alınan sağlayıcıya özgü alan türünün gösterimi olan bir Object alır.

GetProviderSpecificValue(Int32)

Temel alınan sağlayıcıya özgü alan türünün gösterimi olan bir Object alır.

GetProviderSpecificValues(Object[])

Temel alınan sağlayıcıya özgü değerlerin bir gösterimi olan bir nesne dizisi alır.

GetSchemaTable()

OracleDataReader'ın sütun meta verilerini açıklayan bir DataTable döndürür.

GetSchemaTableAsync(CancellationToken)

Bu, zaman uyumsuz sürümüdür GetSchemaTable(). Sağlayıcılar uygun bir uygulamayla geçersiz kılmalıdır. cancellationToken isteğe bağlı olarak kabul edilebilir. Varsayılan uygulama zaman uyumlu GetSchemaTable() çağrıyı çağırır ve tamamlanmış bir görev döndürür. Varsayılan uygulama, zaten iptal edilmiş bir geçirildiyse iptal edilmiş cancellationTokenbir görev döndürür. tarafından GetSchemaTable() oluşan özel durumlar, döndürülen Görev Özel Durumu özelliği aracılığıyla iletilecektir.

(Devralındığı yer: DbDataReader)
GetStream(Int32)

Belirtilen sütundan veri almak için bir akış alır.

(Devralındığı yer: DbDataReader)
GetString(Int32)

Belirtilen sütunun değerini dize olarak alır.

GetTextReader(Int32)

Sütundan veri almak için bir metin okuyucu alır.

(Devralındığı yer: DbDataReader)
GetTimeSpan(Int32)

Belirtilen sütunun değerini olarak System.TimeSpanalır.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
GetValue(Int32)

Belirtilen sıradaki sütunun değerini yerel biçiminde alır.

GetValues(Object[])

Bir nesne dizisini geçerli satırın sütun değerleriyle doldurur.

InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
IsDBNull(Int32)

Sütunun var olmayan veya eksik değerler içerdiğini belirten bir değer alır.

IsDBNullAsync(Int32)

Zaman uyumsuz olarak, sütunun var olmayan veya eksik değerler içerdiğini belirten bir değer alır.

(Devralındığı yer: DbDataReader)
IsDBNullAsync(Int32, CancellationToken)

Zaman uyumsuz olarak, sütunun var olmayan veya eksik değerler içerdiğini belirten bir değer alır.

(Devralındığı yer: DbDataReader)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
NextResult()

öğesini OracleDataReader sonraki sonuda ilerler.

NextResultAsync()

Bir deyim toplu işleminin sonuçlarını okurken okuyucuyu zaman uyumsuz olarak sonraki sonuca ilerler.

(Devralındığı yer: DbDataReader)
NextResultAsync(CancellationToken)

Bir deyim toplu işleminin sonuçlarını okurken okuyucuyu zaman uyumsuz olarak sonraki sonuca ilerler.

(Devralındığı yer: DbDataReader)
Read()

öğesini OracleDataReader sonraki kayda ilerler.

ReadAsync()

Zaman uyumsuz olarak okuyucuyu bir sonuç kümesindeki bir sonraki kayda ilerler.

(Devralındığı yer: DbDataReader)
ReadAsync(CancellationToken)

Zaman uyumsuz olarak okuyucuyu bir sonuç kümesindeki bir sonraki kayda ilerler.

(Devralındığı yer: DbDataReader)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

IDataRecord.GetData(Int32)

Bu üyenin açıklaması için bkz GetData(Int32). .

(Devralındığı yer: DbDataReader)
IEnumerable.GetEnumerator()

Bir toplulukta tekrarlanan bir numaralandırıcı döndürür.

Uzantı Metotları

CanGetColumnSchema(DbDataReader)

bir sütun şeması alıp DbDataReader alamayacağını belirten bir değer alır.

GetColumnSchema(DbDataReader)

bir DbDataReaderiçin sütun şemasını (DbColumnkoleksiyon) alır.

Cast<TResult>(IEnumerable)

öğesinin IEnumerable öğelerini belirtilen türe atar.

OfType<TResult>(IEnumerable)

Öğesinin IEnumerable öğelerini belirtilen türe göre filtreler.

AsParallel(IEnumerable)

Sorgunun paralelleştirilmesini etkinleştirir.

AsQueryable(IEnumerable)

bir IEnumerable öğesini öğesine IQueryabledönüştürür.

Şunlara uygulanır