C#编写的AccessHelper
生活随笔
收集整理的這篇文章主要介紹了
C#编写的AccessHelper
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C#編寫的AccessHelper
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.OleDb; using System.Data;namespace CZGH.Class {/// <summary>/// access 數(shù)據(jù)訪問抽象基礎(chǔ)類/// </summary>public abstract class AccessHelper{private static string MdbPath = null;//數(shù)據(jù)庫路徑public static string path{get{return MdbPath;}set{MdbPath = value;}}public AccessHelper() { }#region 創(chuàng)建數(shù)據(jù)庫連接/// <summary>/// 創(chuàng)建數(shù)據(jù)庫連接/// </summary>/// <returns></returns>private static OleDbConnection CreateConnection(){return new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + MdbPath + ";Persist Security Info=False");}/// <summary>/// 判斷是否能打開數(shù)據(jù)庫連接/// </summary>/// <returns></returns>public static bool IsOpenConnection(){bool bl = false;try{OleDbConnection odc = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + MdbPath + ";Persist Security Info=False");if (odc == null){bl = false;}else{bl = true;}}catch{bl = false;}return bl;}/// <summary>/// 判斷數(shù)據(jù)庫是否存在指定的表/// </summary>/// <param name="conn"></param>/// <param name="table"></param>/// <returns></returns>public static bool TableExists(string table){OleDbConnection Connection = CreateConnection();Connection.Open();var exists = Connection.GetSchema("Tables", new string[4] { null, null, table, "TABLE" }).Rows.Count > 0;Connection.Close();return exists;}#endregion#region 關(guān)閉到數(shù)據(jù)庫的連接并釋放所有資源。/// <summary>/// 關(guān)閉到數(shù)據(jù)庫的連接并釋放所有資源。/// </summary>/// <param name="conn"></param>public static void CloseConnection(OleDbConnection Connection){while (Connection.State != ConnectionState.Closed){Connection.Close();Connection.Dispose();}}#endregion#region 執(zhí)行簡(jiǎn)單的SQL語句#region 執(zhí)行用戶輸入的SQL語句并返回受影響的行數(shù)。/// <summary>/// 執(zhí)行用戶輸入的SQL語句并返回受影響的行數(shù)。/// </summary>/// <param name="strSql"></param>/// <returns></returns>public static int ExecuteNonQuery(string Sql){using (OleDbConnection Connection = CreateConnection()){using (OleDbCommand Cmd = new OleDbCommand(Sql, Connection)){try{Connection.Open();int rows = Cmd.ExecuteNonQuery();return rows;}catch{return 0;}finally{CloseConnection(Connection);}}}}#endregion#region 根據(jù)用戶輸入的查詢語句獲取數(shù)據(jù)集DataTable/// <summary>/// 根據(jù)用戶輸入的查詢語句獲取數(shù)據(jù)集DataTable/// </summary>/// <param name="strSql"></param>/// <returns></returns>public static DataTable ExecuteDataTable(string sql){using (OleDbConnection Connection = CreateConnection()){try{DataSet ds = new DataSet();Connection.Open();OleDbDataAdapter Da = new OleDbDataAdapter(sql, Connection);Da.Fill(ds);if (ds != null){return ds.Tables[0];}else{return null;}}catch (System.Data.OleDb.OleDbException ex){return null;}finally{CloseConnection(Connection);}}}#endregion#endregion#region 批量處理public static void ExecuteSqlTran(List<string> sqlist){using (OleDbConnection conn = CreateConnection()){conn.Open();OleDbCommand cmd = new OleDbCommand();cmd.Connection = conn;OleDbTransaction tx = conn.BeginTransaction();cmd.Transaction = tx;try{for (int n = 0; n < sqlist.Count; n++){string strsql = sqlist[n].ToString();if (strsql.Trim().Length > 1){cmd.CommandText = strsql;cmd.ExecuteNonQuery();}}tx.Commit();}catch (System.Data.OleDb.OleDbException E){tx.Rollback();throw new Exception(E.Message);}}}#endregion#region 自增更新public static void AddFieldValue(List<string> listsql){int flg = 0;for (int i = 0; i < listsql.Count; i++){List<string> list_sqls = new List<string>();string sql = "SELECT * FROM " + listsql[i] + "";DataTable dt = AccessHelper.ExecuteDataTable(sql);if (dt.Rows.Count > 0){for (int j = 0; j < dt.Rows.Count; j++){string update = "UPDATE " + sql[i] + " SET BSM=" + flg + i + 1 + " WHERE OBJECTID =" + Convert.ToInt32(dt.Rows[j]["OBJECTID"]) + "";list_sqls.Add(update);}ExecuteSqlTran(list_sqls);}flg = dt.Rows.Count;}}#endregion} }總結(jié)
以上是生活随笔為你收集整理的C#编写的AccessHelper的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML文本框边框宽度,如何设置文本框尺
- 下一篇: linux定时任务(crontab)