C#操作Access数据库的基础知识浅析

C#操作Access数据库的基础知识都有什么呢?

C#操作Access数据库的基础知识1.

通过ADO.NET的OleDb相关类来操作Access

主要知识点如下:

  1. using System.Data.OleDb;
  2. using System.Data;

连接字符串:

  1. String connectionString =
  2. "Provider=Microsoft.Jet.OLEDB.4.0;
  3. Data Source=product.mdb";

建立连接:

  1. OleDbConnection connection =
  2. new OleDbConnection(connectionString);

使用OleDbCommand类来执行Sql语句:

  1. OleDbCommand cmd = new OleDbCommand(sql, connection);
  2. connection.Open();
  3. cmd.ExecuteNonQuery();

C#操作Access数据库的基础知识2.

取得Access自增标识字段在插入数据后的id值

  1. cmd.CommandText = @"select @@identity";
  2. int value = Int32.Parse(cmd.ExecuteScalar().ToString());
  3. return value;

C#操作Access数据库的基础知识3.

执行事务

需要用到OleDbTransaction,关键语句如下:

  1. OleDbConnection connection = new OleDbConnection(connectionString);
  2. OleDbCommand cmd = new OleDbCommand();
  3. OleDbTransaction transaction = null;
  4. cmd.Connection = connection;
  5. connection.Open();
  6. transaction = connection.BeginTransaction();
  7. cmd.Transaction = transaction;
  8. cmd.CommandText=sql1;
  9. cmd.ExecuteNonQuery();
  10. cmd.CommandText=sql2;
  11. cmd.ExecuteNonQuery();
  12. transaction.Commit();

C#操作Access数据库的基础知识4.

执行查询,返回DataSet

  1. OleDbConnection connection =
  2. new OleDbConnection(connectionString);
  3. DataSet ds = new DataSet();
  4. connection.Open();
  5. OleDbDataAdapter da =
  6. new OleDbDataAdapter(sql, connection);
  7. 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主要知识点如下:

  1. using System.Data.OleDb;
  2. using System.Data;

C#操作Access连接字符串:

  1. String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
  2. Data Source=product.mdb";

C#操作Access建立连接:

  1. OleDbConnection connection = new OleDbConnection(connectionString);

C#操作Access使用OleDbCommand类来执行Sql语句:

  1. OleDbCommand cmd = new OleDbCommand(sql, connection);
  2. connection.Open();
  3. cmd.ExecuteNonQuery();

C#操作Access之创建mdb库,例程如下:

需要注意的是:参数mdbPath是mdb的完整路径(不包含表的名称)。

C#操作Access之创建mdb库实例:D:\\test.mdb

  1. //创建mdb
  2. public static bool CreateMDBDataBase(string mdbPath)
  3. {
  4. try
  5. {
  6. ADOX.CatalogClass cat = new ADOX.CatalogClass();
  7. cat.Create(
  8. "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
  9. + mdbPath + ";");
  10. cat = null;
  11. return true;
  12. }
  13. //C#操作Access之创建mdb库
  14. catch {
  15. return false;
  16. }
  17. }

C#操作Access之创建mdb库的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之创建mdb库有所帮助。

  • C#操作Access之创建表浅析

C#操作Access之创建表是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。

C#操作Access主要知识点如下:

  1. using System.Data.OleDb;
  2. using System.Data;

C#操作Access连接字符串:

  1. String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
  2. Data Source=product.mdb";

C#操作Access建立连接:

  1. OleDbConnection connection = new OleDbConnection(connectionString);

C#操作Access使用OleDbCommand类来执行Sql语句:

  1. OleDbCommand cmd = new OleDbCommand(sql, connection);
  2. connection.Open();
  3. cmd.ExecuteNonQuery();

C#操作Access之创建表,例程如下:

通常一个mdb的可以包含n个表。下面的程序主要是创建一个table。

  1. //新建mdb的表,C#操作Access之创建表
  2. //mdbHead是一个ArrayList,存储的是table表中的具体列名。
  3. public static bool CreateMDBTable(
  4. string mdbPath,string tableName, ArrayList mdbHead)
  5. {
  6. try
  7. {
  8. ADOX.CatalogClass cat = new ADOX.CatalogClass();
  9. string sAccessConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;
  10. Data Source=" + mdbPath;
  11. ADODB.Connection cn = new ADODB.Connection();
  12. cn.Open(sAccessConnection, null, null, -1);
  13. cat.ActiveConnection = cn;
  14. //新建一个表,C#操作Access之创建表
  15. ADOX.TableClass tbl = new ADOX.TableClass();
  16. tbl.ParentCatalog = cat;
  17. tbl.Name = tableName;
  18. int size = mdbHead.Count;
  19. for (int i = 0; i < size; i++)
  20. {
  21. //增加一个文本字段
  22. ADOX.ColumnClass col2 = new ADOX.ColumnClass();
  23. col2.ParentCatalog = cat;
  24. col2.Name = mdbHead[i].ToString();//列的名称
  25. col2.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
  26. tbl.Columns.Append(col2, ADOX.DataTypeEnum.adVarWChar, 500);
  27. }
  28. cat.Tables.Append(tbl);
  29. //这句把表加入数据库(非常重要)  ,C#操作Access之创建表
  30. tbl = null;
  31. cat = null;
  32. cn.Close();
  33. return true;
  34. }
  35. catch { return false; }
  36. }

C#操作Access之创建表的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之创建表有所帮助。

  • C#操作Access之读取mdb浅析

C#操作Access之读取mdb是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。

C#操作Access主要知识点如下:

  1. using System.Data.OleDb;
  2. using System.Data;

C#操作Access连接字符串:

  1. String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
  2. Data Source=product.mdb";

C#操作Access建立连接:

  1. OleDbConnection connection = new OleDbConnection(connectionString);

C#操作Access使用OleDbCommand类来执行Sql语句:

  1. OleDbCommand cmd = new OleDbCommand(sql, connection);
  2. connection.Open();
  3. cmd.ExecuteNonQuery();

C#操作Access之读取mdb实例如下:

本例返回的是一个DataTable,如需其他格式可以自行转换。

  1. // 读取mdb数据
  2. public static DataTable ReadAllData(string tableName,
  3. string mdbPath,ref bool success)
  4. {
  5. DataTable dt = new DataTable();
  6. try
  7. {
  8. DataRow dr;
  9. //1、建立连接 C#操作Access之读取mdb
  10. string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
  11. + mdbPath + ";Jet OLEDB:Database  Password=haoren";
  12. OleDbConnection odcConnection = new OleDbConnection(strConn);
  13. //2、打开连接 C#操作Access之读取mdb
  14. odcConnection.Open();
  15. //建立SQL查询
  16. OleDbCommand odCommand = odcConnection.CreateCommand();
  17. //3、输入查询语句 C#操作Access之读取mdb
  18. odCommand.CommandText = "select * from " + tableName;
  19. //建立读取
  20. OleDbDataReader odrReader = odCommand.ExecuteReader();
  21. //查询并显示数据
  22. int size = odrReader.FieldCount;
  23. for (int i = 0; i < size; i++)
  24. {
  25. DataColumn dc;
  26. dc = new DataColumn(odrReader.GetName(i));
  27. dt.Columns.Add(dc);
  28. }
  29. while (odrReader.Read())
  30. {
  31. dr = dt.NewRow();
  32. for (int i = 0; i < size; i++)
  33. {
  34. dr[odrReader.GetName(i)] =
  35. odrReader[odrReader.GetName(i)].ToString();
  36. }
  37. dt.Rows.Add(dr);
  38. }
  39. //关闭连接 C#操作Access之读取mdb
  40. odrReader.Close();
  41. odcConnection.Close();
  42. success = true;
  43. return dt;
  44. }
  45. catch
  46. {
  47. success = false;
  48. return dt;
  49. }
  50. }

C#操作Access之读取mdb的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之读取mdb有所帮助。

  • C#操作Access之按列读取mdb浅析

C#操作Access之按列读取mdb是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。

C#操作Access主要知识点如下:

  1. using System.Data.OleDb;
  2. using System.Data;

C#操作Access连接字符串:

  1. String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
  2. Data Source=product.mdb";

C#操作Access建立连接:

  1. OleDbConnection connection = new OleDbConnection(connectionString);

C#操作Access使用OleDbCommand类来执行Sql语句:

  1. OleDbCommand cmd = new OleDbCommand(sql, connection);
  2. connection.Open();
  3. cmd.ExecuteNonQuery();

C#操作Access之按列读取mdb内容实例如下:

columns数组存储的是你要查询的列名称(必须确保mdb表中存在你要的列)

  1. // 读取mdb数据
  2. public static DataTable ReadDataByColumns(string mdbPaht,
  3. string tableName, string[] columns, ref bool success)
  4. {
  5. DataTable dt = new DataTable();
  6. try
  7. {
  8. DataRow dr;
  9. //1、建立连接 C#操作Access之按列读取mdb
  10. string strConn = @"Provider=Microsoft.
  11. Jet.OLEDB.4.0;Data Source="
  12. + mdbPath + ";Jet OLEDB:Database Password=haoren";
  13. OleDbConnection odcConnection =
  14. new OleDbConnection(strConn);
  15. //2、打开连接 C#操作Access之按列读取mdb
  16. odcConnection.Open();
  17. //建立SQL查询
  18. OleDbCommand odCommand = odcConnection.CreateCommand();
  19. //3、输入查询语句
  20. string strColumn = "";
  21. for (int i = 0; i < columns.Length; i++)
  22. {
  23. strColumn += columns[i].ToString() + ",";
  24. }
  25. strColumn = strColumn.TrimEnd(',');
  26. odCommand.CommandText = "select "+strColumn+
  27. " from " + tableName;
  28. //建立读取 C#操作Access之按列读取mdb
  29. OleDbDataReader odrReader =
  30. odCommand.ExecuteReader();
  31. //查询并显示数据 C#操作Access之按列读取mdb
  32. int size = odrReader.FieldCount;
  33. for (int i = 0; i < size; i++)
  34. {
  35. DataColumn dc;
  36. dc = new DataColumn(odrReader.GetName(i));
  37. dt.Columns.Add(dc);
  38. }
  39. while (odrReader.Read())
  40. {
  41. dr = dt.NewRow();
  42. for (int i = 0; i < size; i++)
  43. {
  44. dr[odrReader.GetName(i)] = odrReader[
  45. odrReader.GetName(i)].ToString();
  46. }
  47. dt.Rows.Add(dr);
  48. }
  49. //关闭连接 C#操作Access之按列读取mdb
  50. odrReader.Close();
  51. odcConnection.Close();
  52. success = true;
  53. return dt;
  54. }
  55. catch
  56. {
  57. success = false;
  58. return dt;
  59. }
  60. }

C#操作Access之按列读取mdb的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之按列读取mdb有所帮助。

  • C#操作Access实例解析

C#操作Access实例是怎么实现的呢?让我们来看看具体的代码:

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Web;
  5. using System.Web.Security;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. using System.Web.UI.WebControls.WebParts;
  9. using System.Web.UI.HtmlControls;
  10. using System.Data.OleDb;
  11. /// <summary>
  12. /// DataAccess 的摘要说明 C#操作Access实例解析
  13. /// </summary>
  14. public class DataAccess
  15. {
  16. protected static OleDbConnection conn = new OleDbConnection();
  17. protected static OleDbCommand comm = new OleDbCommand();
  18. public DataAccess()
  19. {
  20. //init C#操作Access实例解析
  21. }
  22. private static void openConnection()
  23. {
  24. if (conn.State == ConnectionState.Closed)
  25. {
  26. conn.ConnectionString = @"Provider=Microsoft.Jet.OleDb.4.0;
  27. Data Source="+ConfigurationManager.AppSettings["myconn"];
  28. //web.config文件里设定。
  29. comm.Connection = conn;
  30. try
  31. {
  32. conn.Open();
  33. }
  34. catch (Exception e)
  35. { throw new Exception(e.Message); }
  36. }
  37. }//打开数据库 C#操作Access实例解析
  38. private static void closeConnection()
  39. {
  40. if (conn.State == ConnectionState.Open)
  41. {
  42. conn.Close();
  43. conn.Dispose();
  44. comm.Dispose();
  45. }
  46. }//关闭数据库 C#操作Access实例解析
  47. public static void excuteSql(string sqlstr)
  48. {
  49. try
  50. {
  51. openConnection();
  52. comm.CommandType = CommandType.Text;
  53. comm.CommandText = sqlstr;
  54. comm.ExecuteNonQuery();
  55. }
  56. catch (Exception e)
  57. {
  58. throw new Exception(e.Message);
  59. }
  60. finally
  61. { closeConnection(); }
  62. }//执行sql语句 C#操作Access实例解析
  63. public static OleDbDataReader dataReader(string sqlstr)
  64. {
  65. OleDbDataReader dr = null;
  66. try
  67. {
  68. openConnection();
  69. comm.CommandText = sqlstr;
  70. comm.CommandType = CommandType.Text;
  71. dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
  72. }
  73. catch
  74. {
  75. try
  76. {
  77. dr.Close();
  78. closeConnection();
  79. }
  80. catch { }
  81. }
  82. return dr;
  83. }
  84. //返回指定sql语句的OleDbDataReader对象,使用时请注意关闭这个对象。
  85. public static void dataReader(string sqlstr,
  86. ref OleDbDataReader dr)
  87. {
  88. try
  89. {
  90. openConnection();
  91. comm.CommandText = sqlstr;
  92. comm.CommandType = CommandType.Text;
  93. dr=comm.ExecuteReader(CommandBehavior.CloseConnection);
  94. }
  95. catch
  96. {
  97. try
  98. {
  99. if (dr != null && !dr.IsClosed)
  100. dr.Close();
  101. }  //C#操作Access实例解析
  102. catch
  103. {
  104. }
  105. finally
  106. {
  107. closeConnection();
  108. }
  109. }
  110. }
  111. //返回指定sql语句的OleDbDataReader对象,使用时请注意关闭
  112. public static DataSet dataSet(string sqlstr)
  113. {
  114. DataSet ds = new DataSet();
  115. OleDbDataAdapter da = new OleDbDataAdapter();
  116. try
  117. {
  118. openConnection();
  119. comm.CommandType = CommandType.Text;
  120. comm.CommandText = sqlstr;
  121. da.SelectCommand = comm;
  122. da.Fill(ds);
  123. }
  124. catch (Exception e)
  125. {
  126. throw new Exception(e.Message);
  127. }
  128. finally
  129. {
  130. closeConnection();
  131. }
  132. return ds;
  133. }//返回指定sql语句的dataset C#操作Access实例解析
  134. public static void dataSet(
  135. string sqlstr, ref DataSet ds)
  136. {
  137. OleDbDataAdapter da = new OleDbDataAdapter();
  138. try
  139. {
  140. openConnection();
  141. comm.CommandType = CommandType.Text;
  142. comm.CommandText = sqlstr;
  143. da.SelectCommand = comm;
  144. da.Fill(ds);
  145. }
  146. catch (Exception e)
  147. {
  148. throw new Exception(e.Message);
  149. }
  150. finally
  151. {
  152. closeConnection();
  153. }
  154. }//返回指定sql语句的dataset C#操作Access实例解析
  155. public static DataTable dataTable(string sqlstr)
  156. {
  157. DataTable dt = new DataTable();
  158. OleDbDataAdapter da = new OleDbDataAdapter();
  159. try
  160. {
  161. openConnection();
  162. comm.CommandType = CommandType.Text;
  163. comm.CommandText = sqlstr;
  164. da.SelectCommand = comm;
  165. da.Fill(dt);
  166. }
  167. catch (Exception e)
  168. {
  169. throw new Exception(e.Message);
  170. }
  171. finally
  172. {
  173. closeConnection();
  174. }
  175. return dt;
  176. }//返回指定sql语句的datatable
  177. public static void dataTable(
  178. string sqlstr, ref DataTable dt)
  179. {
  180. OleDbDataAdapter da = new OleDbDataAdapter();
  181. try
  182. {
  183. openConnection();
  184. comm.CommandType = CommandType.Text;
  185. comm.CommandText = sqlstr;
  186. da.SelectCommand = comm;
  187. da.Fill(dt);
  188. }
  189. catch (Exception e)
  190. {
  191. throw new Exception(e.Message);
  192. }
  193. finally
  194. {
  195. closeConnection();
  196. }
  197. }//返回指定sql语句的datatable C#操作Access实例解析
  198. public static DataView dataView(string sqlstr)
  199. {
  200. OleDbDataAdapter da = new OleDbDataAdapter();
  201. DataView dv = new DataView();
  202. DataSet ds = new DataSet();
  203. try
  204. {
  205. openConnection();
  206. comm.CommandType = CommandType.Text;
  207. comm.CommandText = sqlstr;
  208. da.SelectCommand = comm;
  209. da.Fill(ds);
  210. dv = ds.Tables[0].DefaultView;
  211. }
  212. catch (Exception e)
  213. {
  214. throw new Exception(e.Message);
  215. }
  216. finally
  217. {
  218. closeConnection();
  219. }
  220. return dv;
  221. }
  222. //返回指定sql语句的dataview C#操作Access实例解析
  223. }

C#操作Access实例解析的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access有所帮助。

C#操作Access的更多相关文章

  1. C#操作access和SQL server数据库代码实例

    在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...

  2. C#操作Access的一些小结

    C#操作Access的一些小结 好久没有写blog,感觉今年一年都没怎么真正开心过,整天有一些事围绕在身边,使心情难以平静下来,真正写点有意义的东西.博客园是天天看的,看得多,写的少,偶尔也是Copy ...

  3. MFC通过ADO操作Access数据库

    我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读.写Excel表格文件”和“直接通过DAO读.写Access文件”,先后给大家介绍了ODBC和DAO两 ...

  4. Python操作Access数据库

    我们在这篇文章中公分了五个步骤详细分析了Python操作Access数据库的相关方法,希望可以给又需要的朋友们带来一些帮助. AD: Python编 程语言的出现,带给开发人员非常大的好处.我们可以利 ...

  5. 如何通过C#操作Access,本人亲测通过

    1. c# 操作access数据库 // it's your DB file path: // ApplicationEXEPath\Test.mdb var DBPath = "d:\\T ...

  6. 关于操作Access数据库jdk选择问题

    关于操作Access数据库,使用jdk64位无法通过ODBC无法获取数据,只能通过jdk32位进行开发.

  7. 基于指纹考勤机的真实的PHP操作Access数据库成功案例(最终实现) 2011-11-2v

    听了我的建议,我们单位的食堂准备使用一台指纹考勤机统计吃饭人次,这样院里好给食堂的承包人以相应饭补.以前买过一台彩屏指纹机,数据库是access的,今儿又买了一台准备放到食堂里,而且考虑到停电,还特地 ...

  8. C#操作access练习

    ORM框架使用dapper,dapper不仅能操作sqlserver,也能操作access,下面为基本代码: OleDbConnection strConnection = new OleDbConn ...

  9. 直接通过ADO操作Access数据库

    我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读.写Excel表格文件”和“直接通过DAO读.写Access文件”,先后给大家介绍了ODBC和DAO两 ...

随机推荐

  1. MySQL支持多种存储引擎

    MySQL的强大之处在于它的插件式存储引擎,我们可以基于表的特点使用不同的存储引擎,从而达到最好的性能. MySQL有多种存储引擎:MyISAM.InnoDB.MERGE.MEMORY(HEAP).B ...

  2. OPENSSL中RSA私钥文件(PEM格式)解析【一】

    http://blog.sina.com.cn/s/blog_4fcd1ea30100yh4s.html 在PKCS#1 RSA算法标准中定义RSA私钥语法为: RSAPrivateKey ::= S ...

  3. 通过自关联替代开窗函数实现SQL优化

    数据库环境:SQL SERVER 2005 我们平时都是通过开窗析函数来取代自关联,减少表扫描,从而优化SQL.今天,反其道而行, 用自关联改写开窗函数.我们先来看一下SQL. 原SQL语句 SELE ...

  4. 公共语言运行库(CLR)和中间语言(IL)(一)

    公共语言运行库(.net运行库)即CLR 1.C#先编译为IL,IL为ms的中间语言,IL是平台无关性的. 2.CLR再将IL编译为平台专用语言. 3.CLR在编译IL时为即时编译(JIT) VB.V ...

  5. SQL日期操作及只获取日期的方法

    datepart()函数的使用                          * datepart()函数可以方便的取到时期中的各个部分*如日期:2006-07--02 18:15:36.513* ...

  6. java web-----MVC设计模式

    一,MVC将代码分为三个部分,分别为视图(jsp),模型(javaBean),控制部分(servlet); 视图基本为 jsp 文件,主要内容为界面的html代码,负责显示界面: 模型为 javaBe ...

  7. IO流03_流的分类和概述

    [概述] Java的IO流是实现输入/输出的基础,它可以方便的实现数据的输入/输出操作. Java中把不同的输入/输出源(键盘.文件.网络连接)抽象表述为"流"(Stream). ...

  8. OpenJudge/Poj 1321 棋盘问题

    1.链接地址: http://bailian.openjudge.cn/practice/1321 http://poj.org/problem?id=1321 2.题目: 棋盘问题 Time Lim ...

  9. apache 工作模式

    apache三种工作模式: prefork(2.4前默认)/worker/event(2.4默认)内容整理来自以下网站http://m.blog.csdn.net/article/details?id ...

  10. php QQ登录

    基本原理: 就是获取唯一的openid,此值只要与自己数据库表中的值对应,就说明是此用户, 没有,则说明是新用户,其实就是找对应关系,因为openid与QQ号是唯一对应关系 放置按钮: 如在首页 in ...