1,OracleDataReader 类
功能:提供从数据源读取数据行的只进流的方法。无法继承此类。
命名空间: System.Data.OracleClient
程序集: System.Data.OracleClient(在 System.Data.OracleClient.dll 中)
注意事项:
若要创建 OracleDataReader,必须调用 OracleCommand 对象的 ExecuteReader 方法(下面有),而不能直接使用构造函数。
OracleDataReader 的用户可能会看到在读取数据时另一进程或线程对结果集所做的更改。
当 OracleDataReader 关闭后,只能调用 IsClosed 和 RecordsAffected 属性。有些情况下,必须先调用 Close,然后才能调用 RecordsAffected。
在任何给定的时间,可以打开多个 OracleDataReader。
下面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(); } }
下面的示例创建一个 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)); } } } }
2,OracleCommand.ExecuteReader 方法
功能:将 CommandText 发送到 Connection 并生成一个 OracleDataReader。
名称
说明
将 CommandText 发送到 Connection 并生成一个 OracleDataReader。
将 CommandText 发送到 Connection,并使用 CommandBehavior 值之一构造 OracleDataReader。
下面的示例创建一个 OracleCommand,然后通过传递两个字符串来执行它,一个字符串是 SQL SELECT 语句,另一个是用于连接到数据源的字符串。
public void CreateMyOracleDataReader(string queryString, string connectionString) { using (OracleConnection connection = new OracleConnection(connectionString)) { OracleCommand command = new OracleCommand(queryString, connection); connection.Open(); OracleDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { Console.WriteLine(reader.GetValue(0)); } } finally { reader.Close(); } } }
OracleDataReader
最新推荐文章于 2024-09-23 09:52:21 发布