C#连接access和Excel(以数据库的形式)[附驱动资源]

来源:互联网 发布:巩义网络招聘平台 编辑:程序博客网 时间:2024/06/06 14:10

Access数据库时微软旗下的一款软件,我使用过觉得好处有以下几点:

  1. 图形界面做的好,不像其他数据库在黑乎乎的dos窗口下操作,对于一个只是偶尔使用数据库,不深究的人来说真受不了,幸亏有Navicat软件,具体如何使用,可以看我的另外一篇博文http://blog.csdn.net/endlessseaofcrow/article/details/78058436
  2. 安装简单,甚至不用安装,作为入门的数据库软件来说,还是不错的,注意只适用于数据量比较小的项目。

Excel作为Office套件,大家都很熟悉,其实它也可以作为一个数据库来看待,之前把这两个放在一起来写,主要都是用的相同的驱动,作为微软的‘亲儿子’,使用基本是一样的,下面详细来说。

需要声明的是,驱动有两种ACE和Jet,我在这里使用的是ACE驱动,二者大同小异,ACE性能更好些,至于具体区别如下:

  • Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。
  • ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。
  • Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。

连接Access

  • 下载驱动:链接:http://download.csdn.net/download/endlessseaofcrow/9992374
  • 输入以下代码:

  • using System.Data;
    using System.Data.OleDb;
    //定义连接
    string strConnection = “Provider=MicroSoft.ACE.OLEDB.12.0;”;//采用ACE需要下载engine
    strConnection += @”Data Source=H:\Database\Database1.accdb;Persist Security Info=False”;//输入access的物理路径
    OleDbConnection connection = new OleDbConnection(strConnection);
    //定义SQL命令
    string cmdText=” “;//里面输入SQL命令
    OleDbCommand cmd = new OleDbCommand(cmdText, connection);
    //定义datareader,并把数据读取出来
    connection.Open();
    OleDbDataReader cusReader = cmd.ExecuteReader();
    if (connection.State == ConnectionState.Open)
    {
    MessageBox.Show(“连接成功!”);
    }
    //关闭连接
    cusReader.Close();
    connection.Close();

连接Excel

  • 注意,此处连接的Excel是以数据库的形式连接的,要求Excel的格式必须是最原始的格子,不能有合并单元格之类的特殊格子,否则无法导入。其实读取Excel还有更为灵活的非Excel格式,请查看我的其他博文
  • 下载驱动:链接:http://download.csdn.net/download/endlessseaofcrow/9992374

    using System.Data;using System.Data.OleDb;//定义连接string strConnection = "Provider=MicroSoft.ACE.OLEDB.12.0;";//采用ACE需要下载enginestrConnection += @"Data Source=H:\Database\Database1.xlxs;Persist Security Info=False";//输入Excel的物理路径OleDbConnection connection = new OleDbConnection(strConnection);//定义SQL命令string cmdText="select * from[sheet1$]";//里面输入SQL命令,选择Sheet1OleDbCommand cmd = new OleDbCommand(cmdText, connection);//定义datareader,并把数据读取出来connection.Open();OleDbDataReader cusReader = cmd.ExecuteReader();if (connection.State == ConnectionState.Open){     MessageBox.Show("连接成功!");}//关闭连接cusReader.Close();connection.Close();
原创粉丝点击