首页互联网oledbdatareader(oledbdatareader用法)

oledbdatareader(oledbdatareader用法)

编程之家2024-02-0892次浏览

一、OleDbDataReader类使用方法

提供从数据源读取数据行的只进流的方法。不能继承此类。

oledbdatareader(oledbdatareader用法)

有关此类型所有成员的列表,请参阅 OleDbDataReader成员。

System.Object

System.MarshalByRefObject

System.Data.OleDb.OleDbDataReader

[Visual Basic]

NotInheritable Public Class OleDbDataReader

oledbdatareader(oledbdatareader用法)

Inherits MarshalByRefObject

Implements IDataReader, IDisposable, IDataRecord, IEnumerable

[C#]

public sealed class OleDbDataReader: MarshalByRefObject,

IDataReader, IDisposable, IDataRecord, IEnumerable

[C++]

oledbdatareader(oledbdatareader用法)

public __gc __sealed class OleDbDataReader: public

MarshalByRefObject, IDataReader, IDisposable, IDataRecord,

IEnumerable

[JScript]

public class OleDbDataReader extends MarshalByRefObject implements

IDataReader, IDisposable, IDataRecord, IEnumerable

线程安全

此类型的所有公共静态(Visual Basic中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。

备注

若要创建 OleDbDataReader,必须调用 OleDbCommand对象的 ExecuteReader方法,而不能直接使用构造函数。

在使用 OleDbDataReader时,相关联的 OleDbConnection忙于为 OleDbDataReader服务,对 OleDbConnection不能执行任何其他操作,只能关闭。这种情况会一直持续到调用 OleDbDataReader的 Close方法为止。例如,在调用 Close之前,无法检索输出参数。

在数据读取过程中由另一个进程或线程对结果集所作的更改可能对于 OleDbDataReader的用户可见。但是,确切的行为与执行时间有关。

IsClosed和 RecordsAffected是在 OleDbDataReader关闭后仅有的可以调用的属性。尽管当 OleDbDataReader存在时,可随时访问 RecordsAffected属性,但是,请在返回 RecordsAffected的值之前总是调用 Close,以确保返回精确的值。

示例

[Visual Basic, C#]以下示例创建一个 OleDbConnection、一个 OleDbCommand和一个 OleDbDataReader。该示例读取全部数据,并将这些数据写到控制台。最后,该示例先关闭 OleDbDataReader,再关闭 OleDbConnection。

[Visual Basic]

Public Sub ReadMyData(myConnString As String)

Dim mySelectQuery As String="SELECT OrderID, CustomerID FROM Orders"

Dim myConnection As New OleDbConnection(myConnString)

Dim myCommand As New OleDbCommand(mySelectQuery, myConnection)

myConnection.Open()

Dim myReader As OleDbDataReader

myReader= myCommand.ExecuteReader()

' Always call Read before accessing data.

While myReader.Read()

Console.WriteLine(myReader.GetInt32(0).ToString()+"," _

+ myReader.GetString(1))

End While

' always call Close when done reading.

myReader.Close()

' Close the connection when done with it.

myConnection.Close()

End Sub

[C#]

public void ReadMyData(string myConnString){

string mySelectQuery="SELECT OrderID, CustomerID FROM Orders";

OleDbConnection myConnection= new OleDbConnection(myConnString);

OleDbCommand myCommand= new OleDbCommand(mySelectQuery,myConnection);

myConnection.Open();

OleDbDataReader myReader;

myReader= myCommand.ExecuteReader();

// Always call Read before accessing data.

while(myReader.Read()){

Console.WriteLine(myReader.GetInt32(0)+","+ myReader.GetString(1));

}

// always call Close when done reading.

myReader.Close();

// Close the connection when done with it.

myConnection.Close();

}

[C++, JScript]没有可用于 C++或 JScript的示例。若要查看 Visual Basic或 C#示例,请单击页左上角的“语言筛选器”按钮。

要求

命名空间: System.Data.OleDb

平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003系列

程序集: System.Data(在 System.Data.dll中)

参见

二、“c#”中“ExecuteReader”是什么意思

1、MSDN上说:Sends the CommandText to the Connection and builds a SqlDataReader.

简单说,就是SqlCommand对象的方法,执行返回数据的Select语句。它的执行方法有两个:

第一,ExecuteReader():针对Connection执行CommandText,并返回DbDataReader。

第二,ExecuteReader(CommandBehavior behavior):针对Connection执行CommandText,并使用CommandBehavior值之一返回DbDataReader。

2、实例代码

public void CreateMySqlDataReader(string mySelectQuery, SqlConnection myConnection)

{

string sql;//sql语句

SqlCommand myCommand= new SqlCommand(sql, myConnection);

myConnection.Open();

SqlDataReader myReader;

myReader= myCommand.ExecuteReader();

try

{

while(myReader.Read())

{

Console.WriteLine(myReader.GetString(0));

}

}

finally

{

myReader.Close();

myConnection.Close();

}

}

3、下面说说它的用法:

①:

用法:ExecuteReader方法存在的目的只有一个:尽可能快地对数据库进行查询并得到结果。ExecuteReader返回一个 DataReader对象:如果在SqlCommand对象中调用,则返回SqlDataReader;如果在OleDbCommand对象中调用,返回的是OleDbDataReader。可以调用DataReader的方法和属性迭代处理结果集。它是一个快速枚举数据库查询结果的机制,是只读、只进的。对SqlDataReader.Read的每次调用都会从结果集中返回一行。

②:

这是出自我平时所用的时候的一些认识:那就是如果我们在进行数据操作时,如果没有数据可操作,那么我们只能使用ExecuteReader()这个CMD,而executeNoeQuery()与Executescalar()如果在没有数据的时候使用时,就会出错“对像没有实例化”的错误。所以我们在判断是否有数据时,只可以用ExecuteReader()中的REad()方法来检测。

④:

DataReader还有一个GetValue方法可以用来检索字段的值。GetValue返回一个一般性的Object,但是被无数个返回强类型的Get方法补充,比如GetInt32和GetDecimal(参考MSDN2005)。对GetOrdinal的调用是必须的,因为GetDecimal只接受整型索引。GetOrdinal所做的工作正好与GetName相反——它把字段名转换成数字索引。

注意:DataReader必须处理Close方法。

using System.Data.SqlClient;

...

SqlConnection conn= new SqlConnection(@"server=ws7\leosql;database=AdventureWorks;uid=sa;pwd=lixiang@");

try

{

conn.Open();

SqlCommand cmd= new SqlCommand("SELECT* FROM titles WHERE advance!= 0", conn);

SqlDataReader reader= cmd.ExecuteReader();

int index= reader.GetOrdinal("advance");

while(reader.Read())

Console.WriteLine("{0:c}", reader.GetDecimal(index));

=================================

-- Console.WriteLine(reader.GetName(0));

=================================

''reader.Close();''

}

catch(SqlException ex)

{

Console.WriteLine(ex.Message);

}

finally

{

========================================================

--可以配置DataReader,使它真的可以关闭一个底层连接

-- reader= cmd.ExecuteReader(CommandBehavior.CloseConnection);

========================================================

conn.Close();

}

⑤:

现在来强调下:现在来说下ExecuteReader的read()方法,它就是读取一个表的记录,即执行读,每次调用都是返回一行的结果集。

三、c#中ExecuteReader是什么意思怎么用

:ExecuteReader方法存在的目的只有一个:尽可能快地对数据库进行查询并得到结果。ExecuteReader返回一个DataReader对象:如果在SqlCommand对象中调用,则返回SqlDataReader;如果在OleDbCommand对象中调用,返回的是OleDbDataReader。可以调用DataReader的方法和属性迭代处理结果集。它是一个快速枚举数据库查询结果的机制,是只读、只进的。对SqlDataReader.Read的每次调用都会从结果集中返回一行。

oracleparameter(详解Oracle参数的定义与常见使用方法)命名规则(常用的命名规范 命名规则)