C#操作Access

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. }  

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; }   

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. }   

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实例解析 

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

 

posted @ 2013-12-23 09:41  zhengguoqing  阅读(2689)  评论(0编辑  收藏  举报