C#操作Access数据库

learic 贡献于2013-01-12

作者 MC SYSTEM  创建于2010-11-24 01:53:00   修改者MC SYSTEM  修改于2010-11-24 01:58:00字数12279

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

C#操作Access数据库的基础知识浅析 C#操作Access数据库的基础知识都有什么呢? C#操作Access数据库的基础知识1. 通过ADO.NET的OleDb相关类来操作Access 主要知识点如下: 1. using System.Data.OleDb;   2.   3. using System.Data;  连接字符串: 4. String connectionString =    5. "Provider=Microsoft.Jet.OLEDB.4.0;   6. Data Source=product.mdb";  建立连接: 7. OleDbConnection connection =    8. new OleDbConnection(connectionString);  使用OleDbCommand类来执行Sql语句: 9. OleDbCommand cmd = new OleDbCommand(sql, connection);   10. connection.Open();   11. cmd.ExecuteNonQuery();  C#操作Access数据库的基础知识2. 取得Access自增标识字段在插入数据后的id值 12. cmd.CommandText = @"select @@identity";   13. int value = Int32.Parse(cmd.ExecuteScalar().ToString());   14. return value;  C#操作Access数据库的基础知识3. 执行事务 需要用到OleDbTransaction,关键语句如下: 15. OleDbConnection connection = new OleDbConnection(connectionString);   16. OleDbCommand cmd = new OleDbCommand();   17. OleDbTransaction transaction = null;   18. cmd.Connection = connection;   19. connection.Open();   20. transaction = connection.BeginTransaction();   21. cmd.Transaction = transaction;   22. cmd.CommandText=sql1;   23. cmd.ExecuteNonQuery();   24. cmd.CommandText=sql2;   25. cmd.ExecuteNonQuery();   26. transaction.Commit();  C#操作Access数据库的基础知识4. 执行查询,返回DataSet 27. OleDbConnection connection =    28. new OleDbConnection(connectionString);   29. DataSet ds = new DataSet();   30. connection.Open();   31. OleDbDataAdapter da =    32. new OleDbDataAdapter(sql, connection);   33. 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.   3. using System.Data;  C#操作Access连接字符串: 4. String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;   5.   6. Data Source=product.mdb";  C#操作Access建立连接: 7. OleDbConnection connection = new OleDbConnection(connectionString);  C#操作Access使用OleDbCommand类来执行Sql语句: 8. OleDbCommand cmd = new OleDbCommand(sql, connection);   9.   10. connection.Open();   11.   12. cmd.ExecuteNonQuery();  C#操作Access之创建mdb库,例程如下: 需要注意的是:参数mdbPath是mdb的完整路径(不包含表的名称)。 C#操作Access之创建mdb库实例:D:\\test.mdb 13. //创建mdb    14. public static bool CreateMDBDataBase(string mdbPath)    15. {   16.   17.     try  18.   19.     {   20.   21. ADOX.CatalogClass cat = new ADOX.CatalogClass();   22.   23. cat.Create(   24. "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="    25. + mdbPath + ";");   26.   27. cat = null;   28.   29. return true;   30.   31.     }   32.  //C#操作Access之创建mdb库 33.     catch {   34.   35. return false;   36.   37. }   38.   39. }  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.   3. using System.Data;  C#操作Access连接字符串: 4. String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;   5.   6. Data Source=product.mdb";  C#操作Access建立连接: 7. OleDbConnection connection = new OleDbConnection(connectionString);  C#操作Access使用OleDbCommand类来执行Sql语句: 8. OleDbCommand cmd = new OleDbCommand(sql, connection);   9.   10. connection.Open();   11.   12. cmd.ExecuteNonQuery();  C#操作Access之创建表,例程如下: 通常一个mdb的可以包含n个表。下面的程序主要是创建一个table。 13. //新建mdb的表,C#操作Access之创建表  14.   15. //mdbHead是一个ArrayList,存储的是table表中的具体列名。   16.     17. public static bool CreateMDBTable(   18. string mdbPath,string tableName, ArrayList mdbHead)    19.   20. {    21.     try    22.     {    23. ADOX.CatalogClass cat = new ADOX.CatalogClass();    24.   25. string sAccessConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;   26. Data Source=" + mdbPath;    27. ADODB.Connection cn = new ADODB.Connection();    28.   29. cn.Open(sAccessConnection, null, null, -1);    30.   31. cat.ActiveConnection = cn;    32.   33. //新建一个表,C#操作Access之创建表 34. ADOX.TableClass tbl = new ADOX.TableClass();    35. tbl.ParentCatalog = cat;    36. tbl.Name = tableName;    37.   38. int size = mdbHead.Count;    39. for (int i = 0; i < size; i++)    40. {    41.     //增加一个文本字段    42.     ADOX.ColumnClass col2 = new ADOX.ColumnClass();    43.   44.     col2.ParentCatalog = cat;    45.     col2.Name = mdbHead[i].ToString();//列的名称    46.   47.     col2.Properties["Jet OLEDB:Allow Zero Length"].Value = false;    48.   49.     tbl.Columns.Append(col2, ADOX.DataTypeEnum.adVarWChar, 500);    50. }    51. cat.Tables.Append(tbl);     52.   53.  //这句把表加入数据库(非常重要)  ,C#操作Access之创建表  54. tbl = null;    55. cat = null;    56. cn.Close();    57. return true;    58.     }    59.     catch { return false; }    60. }  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.   3. using System.Data;  C#操作Access连接字符串: 4. String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;   5.   6. Data Source=product.mdb";  C#操作Access建立连接: 7. OleDbConnection connection = new OleDbConnection(connectionString);  C#操作Access使用OleDbCommand类来执行Sql语句: 8. OleDbCommand cmd = new OleDbCommand(sql, connection);   9.   10. connection.Open();   11.   12. cmd.ExecuteNonQuery();  C#操作Access之读取mdb实例如下: 本例返回的是一个DataTable,如需其他格式可以自行转换。 13. // 读取mdb数据    14. public static DataTable ReadAllData(string tableName,    15. string mdbPath,ref bool success)    16. {    17.     DataTable dt = new DataTable();    18.     try    19.     {    20. DataRow dr;    21.   22. //1、建立连接 C#操作Access之读取mdb   23.   24. string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="    25. + mdbPath + ";Jet OLEDB:Database  Password=haoren";    26. OleDbConnection odcConnection = new OleDbConnection(strConn);    27.   28. //2、打开连接 C#操作Access之读取mdb   29. odcConnection.Open();    30.   31. //建立SQL查询    32. OleDbCommand odCommand = odcConnection.CreateCommand();    33.   34. //3、输入查询语句 C#操作Access之读取mdb   35.   36. odCommand.CommandText = "select * from " + tableName;    37.   38. //建立读取    39. OleDbDataReader odrReader = odCommand.ExecuteReader();    40.   41. //查询并显示数据    42. int size = odrReader.FieldCount;    43. for (int i = 0; i < size; i++)    44. {    45.     DataColumn dc;    46.     dc = new DataColumn(odrReader.GetName(i));    47.     dt.Columns.Add(dc);    48. }    49. while (odrReader.Read())    50. {    51.     dr = dt.NewRow();    52.     for (int i = 0; i < size; i++)    53.     {    54. dr[odrReader.GetName(i)] =    55. odrReader[odrReader.GetName(i)].ToString();    56.     }    57.     dt.Rows.Add(dr);    58. }    59. //关闭连接 C#操作Access之读取mdb   60. odrReader.Close();    61. odcConnection.Close();    62. success = true;    63. return dt;    64.     }    65.     catch    66.     {    67. success = false;    68. return dt;    69.     }    70. }  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.   3. using System.Data;  C#操作Access连接字符串: 4. String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;   5.   6. Data Source=product.mdb";  C#操作Access建立连接: 7. OleDbConnection connection = new OleDbConnection(connectionString);  C#操作Access使用OleDbCommand类来执行Sql语句: 8. OleDbCommand cmd = new OleDbCommand(sql, connection);   9.   10. connection.Open();   11.   12. cmd.ExecuteNonQuery();  C#操作Access之按列读取mdb内容实例如下: columns数组存储的是你要查询的列名称(必须确保mdb表中存在你要的列) 13. // 读取mdb数据    14. public static DataTable ReadDataByColumns(string mdbPaht, 15. string tableName, string[] columns, ref bool success)    16. {    17.     DataTable dt = new DataTable();    18.     try    19.     {    20. DataRow dr;    21. //1、建立连接 C#操作Access之按列读取mdb   22. string strConn = @"Provider=Microsoft. 23. Jet.OLEDB.4.0;Data Source="  24. + mdbPath + ";Jet OLEDB:Database Password=haoren";    25. OleDbConnection odcConnection =  26. new OleDbConnection(strConn);    27. //2、打开连接 C#操作Access之按列读取mdb   28. odcConnection.Open();    29. //建立SQL查询    30. OleDbCommand odCommand = odcConnection.CreateCommand();    31. //3、输入查询语句    32. string strColumn = "";    33. for (int i = 0; i < columns.Length; i++)    34. {    35.     strColumn += columns[i].ToString() + ",";    36. }    37. strColumn = strColumn.TrimEnd(',');    38. odCommand.CommandText = "select "+strColumn+ 39. " from " + tableName;    40. //建立读取 C#操作Access之按列读取mdb   41. OleDbDataReader odrReader =  42. odCommand.ExecuteReader();    43. //查询并显示数据 C#操作Access之按列读取mdb   44. int size = odrReader.FieldCount;    45. for (int i = 0; i < size; i++)    46. {    47.     DataColumn dc;    48.     dc = new DataColumn(odrReader.GetName(i));    49.     dt.Columns.Add(dc);    50. }    51.   52. while (odrReader.Read())    53. {    54.     dr = dt.NewRow();    55.     for (int i = 0; i < size; i++)    56.     {    57. dr[odrReader.GetName(i)] = odrReader[ 58. odrReader.GetName(i)].ToString();    59.     }    60.     dt.Rows.Add(dr);    61. }    62. //关闭连接 C#操作Access之按列读取mdb   63. odrReader.Close();    64. odcConnection.Close();    65. success = true;    66. return dt;    67.     }    68.     catch    69.     {    70. success = false;    71. return dt;    72.     }    73. }   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.   12. ///    13. /// DataAccess 的摘要说明 C#操作Access实例解析  14. ///    15. public class DataAccess   16. {   17.  protected static OleDbConnection conn = new OleDbConnection();   18.  protected static OleDbCommand comm = new OleDbCommand();   19. public DataAccess()   20. {   21.    //init C#操作Access实例解析  22. }   23.  private static void openConnection()   24.  {   25. if (conn.State == ConnectionState.Closed)   26. {   27. conn.ConnectionString = @"Provider=Microsoft.Jet.OleDb.4.0;   28. Data Source="+ConfigurationManager.AppSettings["myconn"];   29. //web.config文件里设定。   30. comm.Connection = conn;   31. try  32. {   33. conn.Open();   34. }   35. catch (Exception e)   36. { throw new Exception(e.Message); }   37.   38. }   39.       40.  }//打开数据库 C#操作Access实例解析 41.      42.  private static void closeConnection()   43.  {   44. if (conn.State == ConnectionState.Open)   45. {    46. conn.Close();   47. conn.Dispose();   48. comm.Dispose();   49. }   50.  }//关闭数据库 C#操作Access实例解析  51.   52.  public static void excuteSql(string sqlstr)   53.  {   54. try  55. {   56. openConnection();   57. comm.CommandType = CommandType.Text;   58. comm.CommandText = sqlstr;   59. comm.ExecuteNonQuery();   60. }   61. catch (Exception e)   62. {   63. throw new Exception(e.Message);   64. }   65. finally  66. { closeConnection(); }   67.  }//执行sql语句 C#操作Access实例解析  68.   69.  public static OleDbDataReader dataReader(string sqlstr)   70.  {   71. OleDbDataReader dr = null;   72. try  73. {   74. openConnection();   75. comm.CommandText = sqlstr;   76. comm.CommandType = CommandType.Text;   77.   78. dr = comm.ExecuteReader(CommandBehavior.CloseConnection);   79. }   80. catch  81. {   82. try  83. {   84. dr.Close();   85. closeConnection();   86. }   87. catch { }   88. }   89. return dr;   90. }   91. //返回指定sql语句的OleDbDataReader对象,使用时请注意关闭这个对象。   92.  public static void dataReader(string sqlstr,   93.  ref OleDbDataReader dr)   94.  {   95. try  96. {   97. openConnection();   98. comm.CommandText = sqlstr;   99. comm.CommandType = CommandType.Text;   100. dr=comm.ExecuteReader(CommandBehavior.CloseConnection);   101. }   102. catch  103. {   104. try  105. {   106. if (dr != null && !dr.IsClosed)   107.    dr.Close();   108. }  //C#操作Access实例解析 109. catch  110. {   111. }   112. finally  113. {   114. closeConnection();   115. }   116. }   117.  }   118. //返回指定sql语句的OleDbDataReader对象,使用时请注意关闭   119.   120.  public static DataSet dataSet(string sqlstr)   121.  {   122. DataSet ds = new DataSet();   123. OleDbDataAdapter da = new OleDbDataAdapter();   124. try  125. {   126. openConnection();   127. comm.CommandType = CommandType.Text;   128. comm.CommandText = sqlstr;   129. da.SelectCommand = comm;   130. da.Fill(ds);   131.   132. }   133. catch (Exception e)   134. {   135. throw new Exception(e.Message);   136. }   137. finally  138. {   139. closeConnection();   140. }   141. return ds;   142.  }//返回指定sql语句的dataset C#操作Access实例解析  143.   144.  public static void dataSet(   145. string sqlstr, ref DataSet ds)   146.  {   147. OleDbDataAdapter da = new OleDbDataAdapter();   148. try  149. {   150. openConnection();   151. comm.CommandType = CommandType.Text;   152. comm.CommandText = sqlstr;   153. da.SelectCommand = comm;   154. da.Fill(ds);   155. }   156. catch (Exception e)   157. {   158. throw new Exception(e.Message);   159. }   160. finally  161. {   162. closeConnection();   163. }   164.  }//返回指定sql语句的dataset C#操作Access实例解析 165.   166.  public static DataTable dataTable(string sqlstr)   167.  {   168. DataTable dt = new DataTable();   169. OleDbDataAdapter da = new OleDbDataAdapter();   170. try  171. {   172. openConnection();   173. comm.CommandType = CommandType.Text;   174. comm.CommandText = sqlstr;   175. da.SelectCommand = comm;   176. da.Fill(dt);   177. }   178. catch (Exception e)   179. {   180. throw new Exception(e.Message);   181. }   182. finally  183. {   184. closeConnection();   185. }   186. return dt;   187.  }//返回指定sql语句的datatable   188.  public static void dataTable(   189. string sqlstr, ref DataTable dt)   190.  {   191. OleDbDataAdapter da = new OleDbDataAdapter();   192. try  193. {   194. openConnection();   195. comm.CommandType = CommandType.Text;   196. comm.CommandText = sqlstr;   197. da.SelectCommand = comm;   198. da.Fill(dt);   199. }   200. catch (Exception e)   201. {   202. throw new Exception(e.Message);   203. }   204. finally  205. {   206. closeConnection();   207. }   208.  }//返回指定sql语句的datatable C#操作Access实例解析  209.   210.  public static DataView dataView(string sqlstr)   211.  {   212. OleDbDataAdapter da = new OleDbDataAdapter();   213. DataView dv = new DataView();   214. DataSet ds = new DataSet();   215. try  216. {   217. openConnection();   218. comm.CommandType = CommandType.Text;   219. comm.CommandText = sqlstr;   220. da.SelectCommand = comm;   221. da.Fill(ds);   222. dv = ds.Tables[0].DefaultView;   223. }   224. catch (Exception e)   225. {   226. throw new Exception(e.Message);   227. }   228. finally  229. {   230. closeConnection();   231. }   232. return dv;   233.  }   234. //返回指定sql语句的dataview C#操作Access实例解析  235.   236. }  C#操作Access实例解析的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access有所帮助。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ] 1 人已下载

下载文档