zoukankan      html  css  js  c++  java
  • Microsoft.Jet.OLEDB.4.0 未注册! 野峰

    一段简单的访问 Access 数据库的测试代码:

    using System;
    using System.Data.OleDb;
    public class DbTest
    {
        public static void Main()
        {
            string cnstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb";
            OleDbConnection cn = null;
     
            try
            {
                cn = new OleDbConnection(cnstr);
                cn.Open();
                Console.WriteLine("Database opened.");
            }
            catch (Exception exp)
            {
                Console.WriteLine(exp.Message);
            }
            finally
            {
                if (cn != null) { cn.Dispose(); }
            }
        }
    }

    在朋友的机器上通不过,显示Microsoft.Jet.OLEDB.4.0 未注册!
    折腾半天,问题出在 x86 or x64 上!我的机器是32位系统,朋友的机器是64位系统。Microsoft Office 2003 的 Microsoft.Jet.OLEDB.4.0 和 Office 2007 的 Microsoft.ACE.OLEDB.12.0 都不支持64位!

    在MSDN上搜索一下,遇到这个问题的还真不少!

    解决方案(两者均可):

    1、将上面的代码编译为32位代码
    命令行开关指定 /platform:x86

    csc /platform:x86 DbTest.cs

    注:对于 Visual Studio 中的项目,打开项目的属性页,在 生成 页,指定 目标平台 为 x86。

    2、安装64位的 ACE OLEDB Provider
    微软为 Office 2010 提供的 Access Database Engine 有 64 位版本,下载地址如下:
    http://www.microsoft.com/en-us/download/details.aspx?id=13255

    注:如果机器上已经安装有32位的 Office 2010,则安装 64 位的 Access Database Engine 时,需要指定 /passive 选项,如下:
    AccessDatabaseEngine_X64.exe /passive

    连接字符串(ConnectionString)的写法

    1、对于 Office 2000-2003 的数据库引擎
    string cnstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;";

    2、对于 Office 2007 的数据库引擎
    string cnstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=db1.mdb;";

    3、对于 Office 2010 的数据库引擎
    string cnstr = "Provider=Microsoft.ACE.OLEDB.14.0;Data Source=db1.mdb;";

    Access Database Engine(主要是 ACE OLEDB Provider)不仅用于访问 Access 数据库,也可以用于访问 Excel 文件。


  • 相关阅读:
    五、MongoDB的索引
    四、MongoDB的查询
    各模块启动
    HBase1.2.6 javaapi查看rowkey 所在分区等信息
    HBase1.2.6 预分区后,数据不进入预定分区的一个 bug
    SparkStreaming程序设计
    SparkSQL程序设计
    Spark SQL概述
    常用RDD
    spark程序设计
  • 原文地址:https://www.cnblogs.com/prowyh/p/2793824.html
Copyright © 2011-2022 走看看