using System; using System.Collections; using System.Data; using System.Data.OleDb; namespace Eas.Client { public class AccessHelper { /// /// 定义连接字符串字段connstring /// private static string connstring; /// /// 定义连接字符串属性ConnString /// public static string ConnString { get { return connstring; } } /// /// 定义连接对象字段conn /// private static OleDbConnection conn; /// /// 定义连接对象属性Conn /// public static OleDbConnection Conn { get { return conn; } set { conn = value; } } /// /// Database构造函数逻辑代码用来直接初始化连接字符串ConnString /// public AccessHelper() { connstring = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); //string connStr = "Provider={0};Persist Security Info=False;Data Source={1};"; //Database Password={2}; //string provider = System.Configuration.ConfigurationManager.AppSettings["Provider"].ToString(); //string path = System.Windows.Forms.Application.StartupPath + System.Configuration.ConfigurationManager.AppSettings["Path"].ToString(); //string password = System.Configuration.ConfigurationManager.AppSettings["Password"].ToString(); //this.connstring = string.Format(connStr, provider,path); } /// /// 打开连接方法 /// public static void Open() { if (Conn == null) { Conn = new OleDbConnection(ConnString); } if (Conn.State.Equals(ConnectionState.Closed)) { Conn.ConnectionString = ConnString; Conn.Open(); } } /// /// 打开连接方法 /// public static void Open(string db) { string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=False;Data Source={0}"; connStr = string.Format(connStr, db); if (Conn == null) { Conn = new OleDbConnection(connStr); } if (Conn.State.Equals(ConnectionState.Closed)) { Conn.ConnectionString = connStr; Conn.Open(); } } /// /// 关闭数据库连接 /// public static void Close() { if (Conn != null) { //this.connstring = ""; Conn.Close(); Conn.Dispose(); } } /// /// 用于执行SQL语句的方法针对Update、Insert、Delete操作 /// /// SQL语句 /// 针对Update、Insert、Delete操作返回影响的行数,其他就返回-1 public static int ExecuteSql(string sqlString, string db) { int count = -1; try { Open(db); OleDbCommand cmd = new OleDbCommand(sqlString, Conn); count = cmd.ExecuteNonQuery(); } catch (Exception ex) { count = -1; } finally { Close(); } return count; } public static bool ExecuteSql(ArrayList sqlList, string db) { Open(db); OleDbTransaction tran = conn.BeginTransaction(); try { for (int n = 0; n < sqlList.Count; n++) { OleDbCommand cmd = new OleDbCommand(sqlList[n].ToString()); cmd.Connection = conn; cmd.Transaction = tran; cmd.ExecuteNonQuery(); } tran.Commit(); return true; } catch (Exception ex) { tran.Rollback(); return false; } finally { conn.Close(); } } /// /// 根据指定的select语句返回一个数据集DataSet /// /// SQL语句 /// 根据指定的select语句返回一个数据集DataSet public static DataSet Select(string sqlString, string db) { try { Open(db); OleDbDataAdapter sda = new OleDbDataAdapter(sqlString, conn); DataSet ds = new DataSet(); sda.Fill(ds); //logger.Info(sqlString); return ds; } catch (Exception ex) { //logger.Info(ex.Message); //StreamWriter sw = new StreamWriter(@"c:\Log.txt"); //sw.WriteLine(ex.Message); return null; } finally { Close(); } } public static bool HasRow(DataSet ds) { return ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0; } public static bool HasRow(DataTable dt) { return dt != null && dt.Rows.Count > 0; } public static bool HasRow(DataRow dr) { return dr != null; } } }