大家好,又见面了,我是你们的朋友全栈君。OleDbCommand属于DBcommand(还包括odbcCommand\OracleCommand\SqlCommand)类派生,DBcommand的作用是:
当建立与数据源的连接后,可以使用 DBCommand 对象来执行命令并从数据源中返回结果;
OleDbCommand就是在建立OleDBConnection之后,可以从数据源中返回数据结果,如sql查询结果,具体见下面说明
名称 说明
OleDbCommand () 初始化 OleDbCommand 类的新实例。
OleDbCommand (String) 用查询文本初始化 OleDbCommand 类的新实例。
OleDbCommand (String, OleDbConnection) 初始化具有查询文本和 OleDbConnection 的 OleDbCommand 类的新实例。
OleDbCommand (String, OleDbConnection, OleDbTransaction) 初始化具有查询文本、OleDbConnection 和 Transaction 的
OleDbCommand 类的新实例。
一、OleDbCommand与OleDbCommandBuilder
OleDbCommandBuilder用于
OleDbCommandBuilder cmdb=new OleDbCommandBuilder(adapter); 用于OleDbDataAdapter的对象。
而OleDbCommand用于
OleDbCommand oldcmd=new OleDbCommand(sql,olecon); 用于OleConnection和SQL语句这两个参数对象。
二、OleDbCommand与OleDbDataAdapter
DataAdapter 用于从数据源检索数据并填充 DataSet 中的表。DataAdapter 还将对 DataSet 的更改解析回数据源。DataAdapter 使用 .NET Framework 数据提供程序的 Connection 对象连接到数据源,并使用 Command 对象从数据源检索数据以及将更改解析回数据源。
OleDbDataAdapter 充当 DataSet 和数据源之间的桥梁,用于检索和保存数据。OleDbDataAdapter 通过以下方法提供这个桥接器:
使用 Fill 将数据从数据源加载到 DataSet 中,并使用 Update 将 DataSet 中所作的更改发回数据源。
名称 说明
OleDbDataAdapter () 初始化 OleDbDataAdapter 类的新实例。
OleDbDataAdapter (OleDbCommand) 初始化 OleDbDataAdapter 类的新实例,用指定的 OleDbCommand 作为SelectCommand 的属性。
OleDbDataAdapter (String, OleDbConnection) 用 SelectCommand 初始化 OleDbDataAdapter 类的新实例。
OleDbDataAdapter (String, String) 用 SelectCommand 初始化 OleDbDataAdapter 类的新实例。
OleDbDataAdapter其实是4个OleDbCommand的封装
由insertCommand
UpdateCommand
DeleteCommand
和SelectCommand组成
每一个都是一个OleDbCommand
所以,最终的实现是一样的
不过,OleDbDataAdapter提供了许多的方法,来方便我们对一些特定的数据集合进行操作
比如,填充一个查询结果到DataTable,或DataSet中
其实就是类似于,创建一个OleDbCommand
然后执行Select * from 表名
然后执行ExcuteReader()方法
得到一个IDataReader对象
然后逐行读取数据
并存放到一个集合对象中(如DataTable)
经过测试,如果有大量的数据操作
最好是自己写OleDbCommand,会比OleDbDataAdapter操作数据库快很多:)
更多参考
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataOleDbOleDbCommandMembersTopic.htm
ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfSystemDataOleDbOleDbDataAdapterMembersTopic.htm
______________________________________________________________________________________________
三、OleDbdataCommand与OleDbDataReader
若要创建 OleDbDataReader,必须调用 OleDbCommand 对象的 ExecuteReader 方法,而不能直接使用构造函数。
在使用 OleDbDataReader 时,关联的 OleDbConnection 正忙于为 OleDbDataReader 服务,对 OleDbConnection 无法执行任何其他操作,只能将其关闭。除非调用 OleDbDataReader 的 Close 方法,否则会一直处于此状态。例如,在调用 Close 之前,无法检索输出参数。
如:
using System;
using System.Data;
using System.Data.OleDb;
class Class1
{
static void Main()
{
//string x = “Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI;Initial Catalog=Northwind”;
//ReadData(x);
}
public static void ReadData(string connectionString, string queryString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
OleDbCommand command = new OleDbCommand(queryString, connection);
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader[0].ToString());
}
reader.Close();
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144375.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...