C#操作Access
C#操作Access数据库的基础知识浅析
C#操作Access数据库的基础知识都有什么呢?
C#操作Access数据库的基础知识1.
通过ADO.NET的OleDb相关类来操作Access
主要知识点如下:
- using System.Data.OleDb;
- using System.Data;
连接字符串:
- String connectionString =
- "Provider=Microsoft.Jet.OLEDB.4.0;
- Data Source=product.mdb";
建立连接:
- OleDbConnection connection =
- new OleDbConnection(connectionString);
使用OleDbCommand类来执行Sql语句:
- OleDbCommand cmd = new OleDbCommand(sql, connection);
- connection.Open();
- cmd.ExecuteNonQuery();
C#操作Access数据库的基础知识2.
取得Access自增标识字段在插入数据后的id值
- cmd.CommandText = @"select @@identity";
- int value = Int32.Parse(cmd.ExecuteScalar().ToString());
- return value;
C#操作Access数据库的基础知识3.
执行事务
需要用到OleDbTransaction,关键语句如下:
- OleDbConnection connection = new OleDbConnection(connectionString);
- OleDbCommand cmd = new OleDbCommand();
- OleDbTransaction transaction = null;
- cmd.Connection = connection;
- connection.Open();
- transaction = connection.BeginTransaction();
- cmd.Transaction = transaction;
- cmd.CommandText=sql1;
- cmd.ExecuteNonQuery();
- cmd.CommandText=sql2;
- cmd.ExecuteNonQuery();
- transaction.Commit();
C#操作Access数据库的基础知识4.
执行查询,返回DataSet
- OleDbConnection connection =
- new OleDbConnection(connectionString);
- DataSet ds = new DataSet();
- connection.Open();
- OleDbDataAdapter da =
- new OleDbDataAdapter(sql, connection);
- da.Fill(ds,"ds");
C#操作Access数据库的基础知识5.
分页查询
分页查询使用OleDbDataReader来读取数据,并将结果写到一个DataSet中返回。
以上内容封装为三个可重用的类:AccessDBUtil,AccessPageUtil,Page
C#操作Access数据库的基础知识的基本情况就向你介绍到这里,希望对你学习C#操作Access数据库的基础知识有所帮助。
- C#操作Access之创建mdb库浅析
C#操作Access之创建mdb库是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。
C#操作Access主要知识点如下:
- using System.Data.OleDb;
- using System.Data;
C#操作Access连接字符串:
- String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
- Data Source=product.mdb";
C#操作Access建立连接:
- OleDbConnection connection = new OleDbConnection(connectionString);
C#操作Access使用OleDbCommand类来执行Sql语句:
- OleDbCommand cmd = new OleDbCommand(sql, connection);
- connection.Open();
- cmd.ExecuteNonQuery();
C#操作Access之创建mdb库,例程如下:
需要注意的是:参数mdbPath是mdb的完整路径(不包含表的名称)。
C#操作Access之创建mdb库实例:D:\\test.mdb
- //创建mdb
- public static bool CreateMDBDataBase(string mdbPath)
- {
- try
- {
- ADOX.CatalogClass cat = new ADOX.CatalogClass();
- cat.Create(
- "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
- + mdbPath + ";");
- cat = null;
- return true;
- }
- //C#操作Access之创建mdb库
- catch {
- return false;
- }
- }
C#操作Access之创建mdb库的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之创建mdb库有所帮助。
- C#操作Access之创建表浅析
C#操作Access之创建表是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。
C#操作Access主要知识点如下:
- using System.Data.OleDb;
- using System.Data;
C#操作Access连接字符串:
- String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
- Data Source=product.mdb";
C#操作Access建立连接:
- OleDbConnection connection = new OleDbConnection(connectionString);
C#操作Access使用OleDbCommand类来执行Sql语句:
- OleDbCommand cmd = new OleDbCommand(sql, connection);
- connection.Open();
- cmd.ExecuteNonQuery();
C#操作Access之创建表,例程如下:
通常一个mdb的可以包含n个表。下面的程序主要是创建一个table。
- //新建mdb的表,C#操作Access之创建表
- //mdbHead是一个ArrayList,存储的是table表中的具体列名。
- public static bool CreateMDBTable(
- string mdbPath,string tableName, ArrayList mdbHead)
- {
- try
- {
- ADOX.CatalogClass cat = new ADOX.CatalogClass();
- string sAccessConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;
- Data Source=" + mdbPath;
- ADODB.Connection cn = new ADODB.Connection();
- cn.Open(sAccessConnection, null, null, -1);
- cat.ActiveConnection = cn;
- //新建一个表,C#操作Access之创建表
- ADOX.TableClass tbl = new ADOX.TableClass();
- tbl.ParentCatalog = cat;
- tbl.Name = tableName;
- int size = mdbHead.Count;
- for (int i = 0; i < size; i++)
- {
- //增加一个文本字段
- ADOX.ColumnClass col2 = new ADOX.ColumnClass();
- col2.ParentCatalog = cat;
- col2.Name = mdbHead[i].ToString();//列的名称
- col2.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
- tbl.Columns.Append(col2, ADOX.DataTypeEnum.adVarWChar, 500);
- }
- cat.Tables.Append(tbl);
- //这句把表加入数据库(非常重要) ,C#操作Access之创建表
- tbl = null;
- cat = null;
- cn.Close();
- return true;
- }
- catch { return false; }
- }
C#操作Access之创建表的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之创建表有所帮助。
- C#操作Access之读取mdb浅析
C#操作Access之读取mdb是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。
C#操作Access主要知识点如下:
- using System.Data.OleDb;
- using System.Data;
C#操作Access连接字符串:
- String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
- Data Source=product.mdb";
C#操作Access建立连接:
- OleDbConnection connection = new OleDbConnection(connectionString);
C#操作Access使用OleDbCommand类来执行Sql语句:
- OleDbCommand cmd = new OleDbCommand(sql, connection);
- connection.Open();
- cmd.ExecuteNonQuery();
C#操作Access之读取mdb实例如下:
本例返回的是一个DataTable,如需其他格式可以自行转换。
- // 读取mdb数据
- public static DataTable ReadAllData(string tableName,
- string mdbPath,ref bool success)
- {
- DataTable dt = new DataTable();
- try
- {
- DataRow dr;
- //1、建立连接 C#操作Access之读取mdb
- string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
- + mdbPath + ";Jet OLEDB:Database Password=haoren";
- OleDbConnection odcConnection = new OleDbConnection(strConn);
- //2、打开连接 C#操作Access之读取mdb
- odcConnection.Open();
- //建立SQL查询
- OleDbCommand odCommand = odcConnection.CreateCommand();
- //3、输入查询语句 C#操作Access之读取mdb
- odCommand.CommandText = "select * from " + tableName;
- //建立读取
- OleDbDataReader odrReader = odCommand.ExecuteReader();
- //查询并显示数据
- int size = odrReader.FieldCount;
- for (int i = 0; i < size; i++)
- {
- DataColumn dc;
- dc = new DataColumn(odrReader.GetName(i));
- dt.Columns.Add(dc);
- }
- while (odrReader.Read())
- {
- dr = dt.NewRow();
- for (int i = 0; i < size; i++)
- {
- dr[odrReader.GetName(i)] =
- odrReader[odrReader.GetName(i)].ToString();
- }
- dt.Rows.Add(dr);
- }
- //关闭连接 C#操作Access之读取mdb
- odrReader.Close();
- odcConnection.Close();
- success = true;
- return dt;
- }
- catch
- {
- success = false;
- return dt;
- }
- }
C#操作Access之读取mdb的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之读取mdb有所帮助。
- C#操作Access之按列读取mdb浅析
C#操作Access之按列读取mdb是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。
C#操作Access主要知识点如下:
- using System.Data.OleDb;
- using System.Data;
C#操作Access连接字符串:
- String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
- Data Source=product.mdb";
C#操作Access建立连接:
- OleDbConnection connection = new OleDbConnection(connectionString);
C#操作Access使用OleDbCommand类来执行Sql语句:
- OleDbCommand cmd = new OleDbCommand(sql, connection);
- connection.Open();
- cmd.ExecuteNonQuery();
C#操作Access之按列读取mdb内容实例如下:
columns数组存储的是你要查询的列名称(必须确保mdb表中存在你要的列)
- // 读取mdb数据
- public static DataTable ReadDataByColumns(string mdbPaht,
- string tableName, string[] columns, ref bool success)
- {
- DataTable dt = new DataTable();
- try
- {
- DataRow dr;
- //1、建立连接 C#操作Access之按列读取mdb
- string strConn = @"Provider=Microsoft.
- Jet.OLEDB.4.0;Data Source="
- + mdbPath + ";Jet OLEDB:Database Password=haoren";
- OleDbConnection odcConnection =
- new OleDbConnection(strConn);
- //2、打开连接 C#操作Access之按列读取mdb
- odcConnection.Open();
- //建立SQL查询
- OleDbCommand odCommand = odcConnection.CreateCommand();
- //3、输入查询语句
- string strColumn = "";
- for (int i = 0; i < columns.Length; i++)
- {
- strColumn += columns[i].ToString() + ",";
- }
- strColumn = strColumn.TrimEnd(',');
- odCommand.CommandText = "select "+strColumn+
- " from " + tableName;
- //建立读取 C#操作Access之按列读取mdb
- OleDbDataReader odrReader =
- odCommand.ExecuteReader();
- //查询并显示数据 C#操作Access之按列读取mdb
- int size = odrReader.FieldCount;
- for (int i = 0; i < size; i++)
- {
- DataColumn dc;
- dc = new DataColumn(odrReader.GetName(i));
- dt.Columns.Add(dc);
- }
- while (odrReader.Read())
- {
- dr = dt.NewRow();
- for (int i = 0; i < size; i++)
- {
- dr[odrReader.GetName(i)] = odrReader[
- odrReader.GetName(i)].ToString();
- }
- dt.Rows.Add(dr);
- }
- //关闭连接 C#操作Access之按列读取mdb
- odrReader.Close();
- odcConnection.Close();
- success = true;
- return dt;
- }
- catch
- {
- success = false;
- return dt;
- }
- }
C#操作Access之按列读取mdb的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之按列读取mdb有所帮助。
- C#操作Access实例解析
C#操作Access实例是怎么实现的呢?让我们来看看具体的代码:
- using System;
- using System.Data;
- using System.Configuration;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.Data.OleDb;
- /// <summary>
- /// DataAccess 的摘要说明 C#操作Access实例解析
- /// </summary>
- public class DataAccess
- {
- protected static OleDbConnection conn = new OleDbConnection();
- protected static OleDbCommand comm = new OleDbCommand();
- public DataAccess()
- {
- //init C#操作Access实例解析
- }
- private static void openConnection()
- {
- if (conn.State == ConnectionState.Closed)
- {
- conn.ConnectionString = @"Provider=Microsoft.Jet.OleDb.4.0;
- Data Source="+ConfigurationManager.AppSettings["myconn"];
- //web.config文件里设定。
- comm.Connection = conn;
- try
- {
- conn.Open();
- }
- catch (Exception e)
- { throw new Exception(e.Message); }
- }
- }//打开数据库 C#操作Access实例解析
- private static void closeConnection()
- {
- if (conn.State == ConnectionState.Open)
- {
- conn.Close();
- conn.Dispose();
- comm.Dispose();
- }
- }//关闭数据库 C#操作Access实例解析
- public static void excuteSql(string sqlstr)
- {
- try
- {
- openConnection();
- comm.CommandType = CommandType.Text;
- comm.CommandText = sqlstr;
- comm.ExecuteNonQuery();
- }
- catch (Exception e)
- {
- throw new Exception(e.Message);
- }
- finally
- { closeConnection(); }
- }//执行sql语句 C#操作Access实例解析
- public static OleDbDataReader dataReader(string sqlstr)
- {
- OleDbDataReader dr = null;
- try
- {
- openConnection();
- comm.CommandText = sqlstr;
- comm.CommandType = CommandType.Text;
- dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
- }
- catch
- {
- try
- {
- dr.Close();
- closeConnection();
- }
- catch { }
- }
- return dr;
- }
- //返回指定sql语句的OleDbDataReader对象,使用时请注意关闭这个对象。
- public static void dataReader(string sqlstr,
- ref OleDbDataReader dr)
- {
- try
- {
- openConnection();
- comm.CommandText = sqlstr;
- comm.CommandType = CommandType.Text;
- dr=comm.ExecuteReader(CommandBehavior.CloseConnection);
- }
- catch
- {
- try
- {
- if (dr != null && !dr.IsClosed)
- dr.Close();
- } //C#操作Access实例解析
- catch
- {
- }
- finally
- {
- closeConnection();
- }
- }
- }
- //返回指定sql语句的OleDbDataReader对象,使用时请注意关闭
- public static DataSet dataSet(string sqlstr)
- {
- DataSet ds = new DataSet();
- OleDbDataAdapter da = new OleDbDataAdapter();
- try
- {
- openConnection();
- comm.CommandType = CommandType.Text;
- comm.CommandText = sqlstr;
- da.SelectCommand = comm;
- da.Fill(ds);
- }
- catch (Exception e)
- {
- throw new Exception(e.Message);
- }
- finally
- {
- closeConnection();
- }
- return ds;
- }//返回指定sql语句的dataset C#操作Access实例解析
- public static void dataSet(
- string sqlstr, ref DataSet ds)
- {
- OleDbDataAdapter da = new OleDbDataAdapter();
- try
- {
- openConnection();
- comm.CommandType = CommandType.Text;
- comm.CommandText = sqlstr;
- da.SelectCommand = comm;
- da.Fill(ds);
- }
- catch (Exception e)
- {
- throw new Exception(e.Message);
- }
- finally
- {
- closeConnection();
- }
- }//返回指定sql语句的dataset C#操作Access实例解析
- public static DataTable dataTable(string sqlstr)
- {
- DataTable dt = new DataTable();
- OleDbDataAdapter da = new OleDbDataAdapter();
- try
- {
- openConnection();
- comm.CommandType = CommandType.Text;
- comm.CommandText = sqlstr;
- da.SelectCommand = comm;
- da.Fill(dt);
- }
- catch (Exception e)
- {
- throw new Exception(e.Message);
- }
- finally
- {
- closeConnection();
- }
- return dt;
- }//返回指定sql语句的datatable
- public static void dataTable(
- string sqlstr, ref DataTable dt)
- {
- OleDbDataAdapter da = new OleDbDataAdapter();
- try
- {
- openConnection();
- comm.CommandType = CommandType.Text;
- comm.CommandText = sqlstr;
- da.SelectCommand = comm;
- da.Fill(dt);
- }
- catch (Exception e)
- {
- throw new Exception(e.Message);
- }
- finally
- {
- closeConnection();
- }
- }//返回指定sql语句的datatable C#操作Access实例解析
- public static DataView dataView(string sqlstr)
- {
- OleDbDataAdapter da = new OleDbDataAdapter();
- DataView dv = new DataView();
- DataSet ds = new DataSet();
- try
- {
- openConnection();
- comm.CommandType = CommandType.Text;
- comm.CommandText = sqlstr;
- da.SelectCommand = comm;
- da.Fill(ds);
- dv = ds.Tables[0].DefaultView;
- }
- catch (Exception e)
- {
- throw new Exception(e.Message);
- }
- finally
- {
- closeConnection();
- }
- return dv;
- }
- //返回指定sql语句的dataview C#操作Access实例解析
- }
C#操作Access实例解析的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access有所帮助。
C#操作Access的更多相关文章
- C#操作access和SQL server数据库代码实例
在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...
- C#操作Access的一些小结
C#操作Access的一些小结 好久没有写blog,感觉今年一年都没怎么真正开心过,整天有一些事围绕在身边,使心情难以平静下来,真正写点有意义的东西.博客园是天天看的,看得多,写的少,偶尔也是Copy ...
- MFC通过ADO操作Access数据库
我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读.写Excel表格文件”和“直接通过DAO读.写Access文件”,先后给大家介绍了ODBC和DAO两 ...
- Python操作Access数据库
我们在这篇文章中公分了五个步骤详细分析了Python操作Access数据库的相关方法,希望可以给又需要的朋友们带来一些帮助. AD: Python编 程语言的出现,带给开发人员非常大的好处.我们可以利 ...
- 如何通过C#操作Access,本人亲测通过
1. c# 操作access数据库 // it's your DB file path: // ApplicationEXEPath\Test.mdb var DBPath = "d:\\T ...
- 关于操作Access数据库jdk选择问题
关于操作Access数据库,使用jdk64位无法通过ODBC无法获取数据,只能通过jdk32位进行开发.
- 基于指纹考勤机的真实的PHP操作Access数据库成功案例(最终实现) 2011-11-2v
听了我的建议,我们单位的食堂准备使用一台指纹考勤机统计吃饭人次,这样院里好给食堂的承包人以相应饭补.以前买过一台彩屏指纹机,数据库是access的,今儿又买了一台准备放到食堂里,而且考虑到停电,还特地 ...
- C#操作access练习
ORM框架使用dapper,dapper不仅能操作sqlserver,也能操作access,下面为基本代码: OleDbConnection strConnection = new OleDbConn ...
- 直接通过ADO操作Access数据库
我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读.写Excel表格文件”和“直接通过DAO读.写Access文件”,先后给大家介绍了ODBC和DAO两 ...
随机推荐
- 让aspx页面也可以通过url路由进行访问
参考文章:http://blog.csdn.net/zhanglong_longlong/article/details/8841030 这两天,在工作中需要将aspx的页面虚拟成url路径访问.比如 ...
- asp.net MVC URL路由入门指南
asp.net MVC 的URL路由是一个非常强大的功能,而且有个优点:强大单不复杂.然而,目前我在网上看到的相关资料,却都仅仅提供一些示例,仅通过这些示例,初学者基本上不可能明白为什么要这么配置,更 ...
- 11_Jaxws常用注解
[不使用注解] 默认namespace是服务类包名的倒序 默认portType是服务类的类名 ............... 注解的所起的作用: Jaxws提供的注解可以对WebService的接口规 ...
- 在Mac OS X中使用VIM开发STM32(2)
本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 在我先前的博文⎣在Mac OS X中使用VIM开发STM32(1)⎤中,我们安装完成了MACVIM,这一 ...
- C++学习 (转)
1.把C++当成一门新的语言学习: 2.看<Thinking In C++>: 3.看<The C++ Programming Language>和<Inside The ...
- thinkphp autoload 命名空间自定义 namespace
使用thinkPHP过程中,一些自定义的类库和第三方类库需要找一个合适的位置放置,放到系统默认的org文件夹感觉不太好,破坏了thinkPHP的原生目录. 就看了一下官方手册,可以在模块或者应用的配置 ...
- Apache虚拟主机设置
Apache支持两种虚拟主机,一种是基于IP地址的,一种是基于域名的. 基于IP地址的虚拟机现在使用的很少,它需要一台服务器需要拥有多个IP地址.基于域名的虚拟主机要求服务器有一个IP地址就可以了,只 ...
- 让hyper-v调整console的大小
在hyper-v中centos的console一直都是1024x768的分辨率,后来找到一种修改分辨率的解决方法 grubby --update-kernel=ALL --args="vid ...
- c#的多线程
多线程的使用方法: Thread t = new Thread(new ThreadStart (StartMethod)); t.Start(); private void StartMethod( ...
- 【转】MSSQL获取指定表的列名信息,描述,数据类型,长度
/* --作用:根据特定的表名查询出字段,以及描述,数据类型,长度,精度,是否自增,是否为空等信息 --作者:wonder QQ:37036846 QQ群:.NET顶级精英群 ID:124766907 ...