×

oledb

Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别?.net/C# 数据访问层 OleDbDataReader的写法

admin admin 发表于2023-08-05 07:54:20 浏览45 评论0

抢沙发发表评论

本文目录

Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别

区别如下:

1、Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。

2、ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。

3、Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。

4、Jet连接语句:Provider=Microsoft.Jet.OLEDB.4.0;DataSource=|DataDirectory|\您的数据库名.mdb;PersistSecurity Info=True;Jet OLEDB:Database Password=您的数据库密码

5、ACE连接语句:Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|\您的数据库名.accdb;Persist Security Info=True;JetOLEDB:Database Password=您的数据库密码

扩展资料:

需要注意的问题和解决方法:

1.Microsoft.Jet.OLEDB.4.0不要写成Miscrosoft.Jet.OLEDB.4.0,;

2.Data Source不要写成“Data Sourse”,

3.检查是否安装了Office

4.重新安装注册MDAC28.exe (一般你的安装目录里有或者到微软的官方网站上下) 

5.如果是64位平台,也可能出现这种情况

.net/C# 数据访问层 OleDbDataReader的写法

我认为理想的 优雅的解决方案就是:1、GetDataReader 方法中不要写 Open();与Close();,把 Open()拿到外面写。2、在 while (drd.Read()) {} 之后写 Close();3、 Open();与Close();尽量不要写在某个方法体内,这样写灵活性差,代码就容易出现你说的问题。4、我的理论就是 在你要访问DB的时候才 Open();,在你访问结束以后就马上Close(); 例如:Open(); // 开drd = GetDataReader(xx,xx);while (drd.Read()) {//...}Close(); // 关

OleDbDataReader如何使用

错误意思:没有构造函数定义应该是这句:OleDbDataReader reader=new OleDbDataReader(); 这里没有参数为空的OleDbDataReader类,你直接去掉这句,在下面写成OleDbDataReader reader = cmd.ExecuteReader();应该就ok了

OleDbDataReader怎样获得记录总数

您可以通过数据库记录的主键选择所有的记录,然后使用OleDataReader的Read方法,当没有更多的记录时,Read方法会返回False。 public int MyDataNum(string myConnString) { int Count=0; string mySelectQuery = SELECT PrimaryKey FROM DataTable; 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()) {Count++;}// always call Close when done reading. myReader.Close(); // Close the connection when done with it.

什么是oledb

OLEDB(对象链接和嵌入数据库)位于ODBC层与应用程序之间. 在你的ASP页面里,ADO是位于OLEDB之上的“应用程序“. 你的ADO调用先被送到OLEDB,然后再交由ODBC处理. 你可以直接连接到OLEDB层,如果你这么做了,你将看到服务器端游标(recordset的缺省的游标,也是最常用的游标)性能的提升. 用oledb连接数据库: A.sql server: connstr=“PROVIDER=SQLOLEDB; DATA SOURCE=servername;UID=xx;PWD=xxx;DATABASE=dbname“ B.access: connstr=“PROVICER=MICROSOFT.JET.OLEDB.4.0; DATA SOURCE=c:\abc\abc.mdb“ 值得注意的是,OLE DB对ODBC的兼容性,允许OLE DB访问现有的ODBC数据源。其优点很明显,由于ODBC相对OLE DB来说使用得更为普遍,因此可以获得的ODBC驱动程序相应地要比OLE DB的要多。这样不一定要得到OLE DB的驱动程序,就可以立即访问原有的数据系统。 提供者位于OLE DB层,而驱动程序位于ODBC层。如果想使用一个ODBC数据源,需要使用针对ODBC的OLE DB提供者,它会接着使用相应的ODBC驱动程序。如果不需要使用ODBC数据源,那么可以使用相应的OLE DB提供者,这些通常称为本地提供者(native provider)。 可以清楚地看出使用ODBC提供者意味着需要一个额外的层。因此,当访问相同的数据时,针对ODBC的OLE DB提供者可能会比本地的OLE DB提供者的速度慢一些。