C#连接access和Excel(以数据库的形式)[附驱动资源]
C#连接access和Excel(以数据库的形式)[附驱动资源]
出处: http://blog.csdn.net/endlessseaofcrow/article/details/78075038
Access数据库时微软旗下的一款软件,我使用过觉得好处有以下几点:
- 图形界面做的好,不像其他数据库在黑乎乎的dos窗口下操作,对于一个只是偶尔使用数据库,不深究的人来说真受不了,幸亏有Navicat软件,具体如何使用,可以看我的另外一篇博文http://blog.csdn.net/endlessseaofcrow/article/details/78058436
- 安装简单,甚至不用安装,作为入门的数据库软件来说,还是不错的,注意只适用于数据量比较小的项目。
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需要下载engine strConnection += @"Data Source=H:\Database\Database1.xlxs;Persist Security Info=False";//输入Excel的物理路径 OleDbConnection connection = new OleDbConnection(strConnection); //定义SQL命令 string cmdText="select * from[sheet1$]";//里面输入SQL命令,选择Sheet1 OleDbCommand cmd = new OleDbCommand(cmdText, connection); //定义datareader,并把数据读取出来 connection.Open(); OleDbDataReader cusReader = cmd.ExecuteReader(); if (connection.State == ConnectionState.Open) { MessageBox.Show("连接成功!"); } //关闭连接 cusReader.Close(); connection.Close();