c# 连接ACCESS数据库
2015-09-28 19:41
369 查看
C#连接Access2003 2007数据库手记Access2003保存的数据库文件格式为.mdb,Access 2007数据库保存的数据库文件格式为.accdb。总体来说用C#下用ado连接两者的代码几乎是一样的,唯一的区别就是连接字符串中Provider字段不一样。 例如:mdb:Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\Users\\xiaxia\\Desktop\\temp\\Database1.mdbaccdb:Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=C:\\Users\\xiaxia\\Desktop\\temp\\haha.accdb
另外一种更为严谨的:
另外一种可供参考:
Data Source=C:\\Users\\xiaxia\\Desktop\\temp\\haha.accdb
using System.Data.OleDb; public partial class Form3 : Form { OleDbConnection objConnextion; // DataSet ds; int vRec; public Form3() { InitializeComponent(); } private void Form3_Load(object sender, EventArgs e) { } private void linkdb() { string strConnection = "Provider = Microsoft.Jet.Oledb.4.0;Data Source = yg606g_result.mdb"; objConnextion = new OleDbConnection(strConnection); objConnextion.Open(); } private void button1_Click(object sender, EventArgs e) { linkdb(); string sql = "select * from result"; OleDbDataAdapter myda = new OleDbDataAdapter(sql, objConnextion); DataSet myds = new DataSet(); vRec = myda.Fill(myds, "result"); dataGridView1.DataSource = myds.Tables ["result"]; } }
另外一种更为严谨的:
private void linkdb() { string ConStr = string.Format(@"Provider=Microsoft.Jet.OLEdb.4.0;Data Source = {0}\yg606g_result.mdb", Application.StartupPath); OleDbConnection oleCon = new OleDbConnection(ConStr); OleDbDataAdapter oleDap = new OleDbDataAdapter("select * from Result", oleCon); DataSet ds = new DataSet(); oleDap.Fill(ds, "result"); //this.dataGridView1.DataSource = ds.Tables["result"];//this method is good! this.dataGridView1.DataSource = ds.Tables[0].DefaultView; oleCon.Close(); oleCon.Dispose(); }
另外一种可供参考:
using System.Data; using System.Data.OleDb; private OleDbConnection con; /// <summary> /// 打开数据库连接 /// </summary> /// <param name="DBpath">数据库路径(包括数据库名)</param> private void Open(String DBpath) { if(con == null) con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DBpath); if (con.State == ConnectionState.Closed) con.Open(); } /// <summary> /// 创建一个命令对象并返回该对象 /// </summary> /// <param name="sqlStr">数据库语句</param> /// <param name="file">数据库所在路径</param> /// <returns>OleDbCommand</returns> private OleDbCommand CreateCommand(string sqlStr, string file) { Open(file); OleDbCommand cmd = new OleDbCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = sqlStr; cmd.Connection = con; return cmd; } /// <summary> /// 执行 /// </summary> /// <param name="sqlStr">SQL语句</param> /// <param name="file">数据库所在路径</param> /// <returns>返回数值当执行成功时候返回true,失败则返回false</returns> public bool ExecuteNonQury(string sqlStr, string file) { OleDbCommand cmd = CreateCommand(sqlStr, file); int result = cmd.ExecuteNonQuery(); if (result == -1 | result == 0) { cmd.Dispose(); Close(); return false; } else { cmd.Dispose(); Close(); return true; } /// <summary> /// 执行数据库查询 /// </summary> /// <param name="sqlStr">查询语句</param> /// <param name="tableName">填充数据集表格的名称</param> /// <param name="file">数据库所在路径</param> /// <returns>查询的数据集</returns> public DataSet GetDataSet(string sqlStr, string file) { DataSet ds = new DataSet(); OleDbCommand cmd = CreateCommand(sqlStr, file); OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmd); dataAdapter.Fill(ds); cmd.Dispose(); Close(); dataAdapter.Dispose(); return ds; } /// <summary> /// 生成一个数据读取器OleDbDataReader并返回该OleDbDataReader /// </summary> /// <param name="sqlStr">数据库查询语句</param> /// <returns>返回一个DataReader对象</returns> public OleDbDataReader GetReader(string sqlStr, string file) { OleDbCommand cmd = CreateCommand(sqlStr, file); OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); //CommadnBehavior.CloseConnection是将于DataReader的数据库链接关联起来 //当关闭DataReader对象时候也自动关闭链接 return reader; } /// <summary> /// 关闭数据库 /// </summary> public void Close() { if (con != null) con.Close(); con = null; }
相关文章推荐
- ORACLE增删改查
- mysql binlog参数设置
- MySQL数据库配置文件之my.ini小札记
- 深入解析Oracle 10g中SGA_MAX_SIZE和SGA_TARGET参数的区别和作用
- 深入解析Oracle 10g中SGA_MAX_SIZE和SGA_TARGET参数的区别和作用
- mysql数据库入门
- Mongodb之JavaApi调用例子
- sql 左联 右联 内联的区别
- Oracle 数据库基础知识点总结(一)
- Postgresql创建表后无法添加数据
- oracle分布式事务总结-转载
- mysql 排序 特殊数据置顶
- SQLite数据库建立主键/外键的方法
- CentOS安装Redis记录
- SQL Server 2005数据库日志丢失的恢复
- FMDB数据库升级增加表字段
- Oracle 误 删除 恢复 表内容
- 连接异常: Access denied for user 'root'@'localhost' (using password: NO)
- Redis Sentinel的配置和使用
- 如何正常启动plsql