OracleDataReader Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyediakan cara membaca aliran baris data khusus maju dari sumber data. Kelas ini tidak dapat diwariskan.
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
- Warisan
- Warisan
- Penerapan
Contoh
Contoh berikut membuat OracleConnection, , OracleCommanddan OracleDataReader. Contohnya membaca data, menulisnya ke konsol. Akhirnya, contoh menutup OracleDataReader, lalu 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
Keterangan
Untuk membuat OracleDataReader, Anda harus memanggil ExecuteReader metode OracleCommand objek , daripada langsung menggunakan konstruktor.
Perubahan yang dilakukan pada hasil oleh proses atau utas lain saat data sedang dibaca mungkin terlihat oleh pengguna OracleDataReader.
IsClosed dan RecordsAffected adalah satu-satunya properti yang dapat Anda panggil setelah OracleDataReader ditutup. Dalam beberapa kasus, Anda harus menelepon Close sebelum dapat memanggil RecordsAffected.
Lebih dari satu OracleDataReader dapat dibuka pada waktu tertentu.
Dua contoh Visual Basic berikut menunjukkan cara menggunakan OracleDataReader untuk mengambil Oracle REF CURSOR
. Contoh-contoh ini menggunakan tabel yang ditentukan dalam skema Oracle Scott/Tiger, dan memerlukan paket PL/SQL dan isi paket berikut. Anda harus membuat ini di server Anda untuk menggunakan contoh.
Buat paket Oracle berikut di server 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;
/
Buat isi paket Oracle berikut di server 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;
/
Contoh Visual Basic ini menjalankan prosedur tersimpan PL/SQL yang mengembalikan REF CURSOR
parameter, dan membaca nilai sebagai 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
Contoh Visual Basic ini menjalankan prosedur tersimpan PL/SQL yang mengembalikan dua REF CURSOR
parameter, dan membaca nilai menggunakan 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
Contoh C# ini membuat tabel Oracle dan memuatnya dengan data. Anda harus menjalankan contoh ini sebelum menjalankan contoh berikutnya, yang menunjukkan penggunaan OracleDataReader untuk mengakses data menggunakan struktur 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();
}
}
Contoh C# ini menggunakan OracleDataReader untuk mengakses data, dan menggunakan beberapa OracleType struktur untuk menampilkan data.
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();
}
}
Properti
Depth |
Mendapatkan nilai yang menunjukkan kedalaman bersarang untuk baris saat ini. |
FieldCount |
Mendapatkan jumlah kolom di baris saat ini. |
HasRows |
Mendapatkan nilai yang menunjukkan apakah OracleDataReader berisi satu atau beberapa baris. |
IsClosed |
Menunjukkan apakah OracleDataReader ditutup. |
Item[Int32] |
Mendapatkan nilai kolom yang ditentukan dalam format aslinya mengingat kolom ordinal. |
Item[String] |
Mendapatkan nilai kolom yang ditentukan dalam format aslinya dengan nama kolom. |
RecordsAffected |
Mendapatkan jumlah baris yang diubah, disisipkan, atau dihapus oleh eksekusi pernyataan SQL. |
VisibleFieldCount |
Mendapatkan jumlah bidang dalam DbDataReader bidang yang tidak disembunyikan. (Diperoleh dari DbDataReader) |
Metode
Close() |
OracleDataReader Menutup objek. |
CloseAsync() |
Menutup objek secara DbDataReader asinkron. (Diperoleh dari DbDataReader) |
CreateObjRef(Type) |
Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh. (Diperoleh dari MarshalByRefObject) |
Dispose() |
Melepaskan sumber daya yang digunakan oleh objek ini. |
Dispose() |
Merilis semua sumber daya yang digunakan oleh instans DbDataReader kelas saat ini. (Diperoleh dari DbDataReader) |
Dispose(Boolean) |
Merilis sumber daya tidak terkelola yang DbDataReader digunakan oleh dan secara opsional merilis sumber daya terkelola. (Diperoleh dari DbDataReader) |
DisposeAsync() |
Secara asinkron merilis semua sumber daya yang digunakan oleh instans DbDataReader kelas saat ini. (Diperoleh dari DbDataReader) |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetBoolean(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai Boolean. |
GetByte(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai byte. |
GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Membaca aliran byte dari offset kolom yang ditentukan ke dalam buffer sebagai array, dimulai pada offset buffer yang diberikan. |
GetChar(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai karakter. |
GetChars(Int32, Int64, Char[], Int32, Int32) |
Membaca aliran karakter dari offset kolom yang ditentukan ke dalam buffer sebagai array, dimulai pada offset buffer yang diberikan. |
GetColumnSchemaAsync(CancellationToken) |
Ini adalah versi asinkron dari GetColumnSchema(DbDataReader).
Penyedia harus mengambil alih dengan implementasi yang sesuai.
Secara |
GetData(Int32) |
Mengembalikan IDataReader untuk ordinal kolom yang ditentukan. |
GetData(Int32) |
Mengembalikan pembaca data berlapis untuk kolom yang diminta. (Diperoleh dari DbDataReader) |
GetDataTypeName(Int32) |
Mendapatkan nama jenis data sumber. |
GetDateTime(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai |
GetDbDataReader(Int32) |
DbDataReader Mengembalikan objek untuk ordinal kolom yang diminta yang dapat ditimpa dengan implementasi khusus penyedia. (Diperoleh dari DbDataReader) |
GetDecimal(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai |
GetDouble(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai angka titik mengambang presisi ganda. |
GetEnumerator() |
Mengembalikan yang IEnumerator dapat digunakan untuk mengulangi baris di pembaca data. |
GetFieldType(Int32) |
Type Mendapatkan yang merupakan jenis data objek. |
GetFieldValue<T>(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai jenis yang diminta. (Diperoleh dari DbDataReader) |
GetFieldValueAsync<T>(Int32) |
Secara asinkron mendapatkan nilai kolom yang ditentukan sebagai jenis yang diminta. (Diperoleh dari DbDataReader) |
GetFieldValueAsync<T>(Int32, CancellationToken) |
Secara asinkron mendapatkan nilai kolom yang ditentukan sebagai jenis yang diminta. (Diperoleh dari DbDataReader) |
GetFloat(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai angka floating-point presisi tunggal. |
GetGuid(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai pengidentifikasi unik global (GUID). |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetInt16(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai bilangan bulat bertanda 16-bit. |
GetInt32(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai bilangan bulat bertanda tangan 32-bit. |
GetInt64(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai bilangan bulat bertanda 64-bit. |
GetLifetimeService() |
Kedaluwarsa.
Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
GetName(Int32) |
Mendapatkan nama kolom yang ditentukan. |
GetOracleBFile(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai OracleBFile objek. |
GetOracleBinary(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai OracleBinary objek. |
GetOracleDateTime(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai OracleDateTime objek. |
GetOracleLob(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai OracleLob objek. |
GetOracleMonthSpan(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai OracleMonthSpan objek. |
GetOracleNumber(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai OracleNumber objek. |
GetOracleString(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai OracleString objek. |
GetOracleTimeSpan(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai OracleTimeSpan objek. |
GetOracleValue(Int32) |
Mendapatkan nilai kolom pada ordinal yang ditentukan dalam format Oracle-nya. |
GetOracleValues(Object[]) |
Mendapatkan semua kolom atribut dalam baris saat ini dalam format Oracle. |
GetOrdinal(String) |
Mendapatkan kolom ordinal, dengan nama kolom. |
GetProviderSpecificFieldType(Int32) |
Mendapatkan yang merupakan representasi dari jenis bidang tertentu penyedia yang mendasar |
GetProviderSpecificValue(Int32) |
Mendapatkan yang merupakan representasi dari jenis bidang tertentu penyedia yang mendasar |
GetProviderSpecificValues(Object[]) |
Mendapatkan array objek yang merupakan representasi dari nilai spesifik penyedia yang mendasar. |
GetSchemaTable() |
Mengembalikan yang DataTable menjelaskan metadata kolom OracleDataReader. |
GetSchemaTableAsync(CancellationToken) |
Ini adalah versi asinkron dari GetSchemaTable().
Penyedia harus mengambil alih dengan implementasi yang sesuai.
Secara |
GetStream(Int32) |
Mendapatkan aliran untuk mengambil data dari kolom yang ditentukan. (Diperoleh dari DbDataReader) |
GetString(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai string. |
GetTextReader(Int32) |
Mendapatkan pembaca teks untuk mengambil data dari kolom. (Diperoleh dari DbDataReader) |
GetTimeSpan(Int32) |
Mendapatkan nilai kolom yang ditentukan sebagai |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
GetValue(Int32) |
Mendapatkan nilai kolom pada ordinal yang ditentukan dalam format aslinya. |
GetValues(Object[]) |
Mengisi array objek dengan nilai kolom baris saat ini. |
InitializeLifetimeService() |
Kedaluwarsa.
Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
IsDBNull(Int32) |
Mendapatkan nilai yang menunjukkan apakah kolom berisi nilai yang tidak ada atau hilang. |
IsDBNullAsync(Int32) |
Secara asinkron mendapatkan nilai yang menunjukkan apakah kolom berisi nilai yang tidak ada atau hilang. (Diperoleh dari DbDataReader) |
IsDBNullAsync(Int32, CancellationToken) |
Secara asinkron mendapatkan nilai yang menunjukkan apakah kolom berisi nilai yang tidak ada atau hilang. (Diperoleh dari DbDataReader) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
MemberwiseClone(Boolean) |
Membuat salinan dangkal objek saat ini MarshalByRefObject . (Diperoleh dari MarshalByRefObject) |
NextResult() |
Memajukan OracleDataReader ke hasil berikutnya. |
NextResultAsync() |
Secara asinkron memajukan pembaca ke hasil berikutnya saat membaca hasil batch pernyataan. (Diperoleh dari DbDataReader) |
NextResultAsync(CancellationToken) |
Secara asinkron memajukan pembaca ke hasil berikutnya saat membaca hasil batch pernyataan. (Diperoleh dari DbDataReader) |
Read() |
Memajukan OracleDataReader ke rekaman berikutnya. |
ReadAsync() |
Secara asinkron memajukan pembaca ke catatan berikutnya dalam kumpulan hasil. (Diperoleh dari DbDataReader) |
ReadAsync(CancellationToken) |
Secara asinkron memajukan pembaca ke catatan berikutnya dalam kumpulan hasil. (Diperoleh dari DbDataReader) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
IDataRecord.GetData(Int32) |
Untuk deskripsi anggota ini, lihat GetData(Int32). (Diperoleh dari DbDataReader) |
IEnumerable.GetEnumerator() |
Mengembalikan enumerator yang melakukan iterasi melalui koleksi. |
Metode Ekstensi
CanGetColumnSchema(DbDataReader) |
Mendapatkan nilai yang menunjukkan apakah bisa DbDataReader mendapatkan skema kolom. |
GetColumnSchema(DbDataReader) |
Mendapatkan skema kolom (DbColumn koleksi) untuk DbDataReader. |
Cast<TResult>(IEnumerable) |
Mentransmisikan elemen dari IEnumerable ke jenis yang ditentukan. |
OfType<TResult>(IEnumerable) |
Memfilter elemen berdasarkan IEnumerable jenis tertentu. |
AsParallel(IEnumerable) |
Mengaktifkan paralelisasi kueri. |
AsQueryable(IEnumerable) |
Mengonversi menjadi IEnumerableIQueryable. |