发布网友 发布时间:2022-04-07 16:33
共3个回答
懂视网 时间:2022-04-07 20:54
using System; using System.Data; using System.Data.OleDb; using System.Collections; using System.IO; using System.Globalization; using System.Configuration; namespace ArticleManage { public class DataAccess { 定义#region 定义 protected OleDbCommand Comm; protected OleDbDataAdapter Adap; protected OleDbConnection Conn; //SQL连接 private string _connectString; //连接串 private string _commandString; //SQL命令 private Hashtable _dict, _result, _mapTable; private DataSet _ds; //返回结果数据集 private DataRow _recordSet; //纪录集 private string _tableName; //表名 private int _recordCount; //纪录集的行数 private bool _eOF; //结果集是否为空,是否已经到了结尾 private string DB; private string _deleteOP; private string _path; private StreamWriter SWCreate, SWApp; private string _errorMessage; private bool _writeLog; #endregion 属性集#region 属性集 /**//// <summary> /// 出错信息 /// </summary> /// public string ErrorMessage { get { return this._errorMessage; } set { this._errorMessage = value; } } /**//**/ /**//// <summary> /// 设置或者取得删除的操作者 /// </summary> public string DeleteOP { get { return this._deleteOP; } set { this._deleteOP = value; } } /**//**/ /**//// <summary> /// 取得是否溢出 /// </summary> public bool EOF { get { return this._eOF; } set { this._eOF = value; } } /**//**/ /**//// <summary> /// 取得执行语句后得出的纪录条数 /// </summary> public int RecordCount { get { return this._recordCount; } set { this._recordCount = value; } } /**//**/ /**//// <summary> /// 数据库中的表名 /// </summary> public string TableName { get { return this._tableName; } set { this._tableName = value; } } /**//**/ /**//// <summary> /// 返回的记录集 /// </summary> public DataRow RecordSet { get { return this._recordSet; } set { this._recordSet = value; } } /**//**/ /**//// <summary> /// 返回的数据集 /// </summary> public DataSet DS { get { return this._ds; } set { this._ds = value; } } /**//**/ /**//// <summary> /// 字段和控件的映射表 /// </summary> public Hashtable MapTable { get { return this._mapTable; } set { this._mapTable = value; } } /**//**/ /**//// <summary> /// 修改数据时,作为修改结果 /// </summary> public Hashtable Result { get { return this._result; } set { this._result = value; } } /**//**/ /**//// <summary> /// 保存数据用的字段和值对应的哈希表,修改数据时用作条件 /// </summary> public Hashtable Dict { get { return this._dict; } set { this._dict = value; } } /**//**/ /**//// <summary> /// 查询语句 /// </summary> public string CommandString { get { return this._commandString; } set { this._commandString = value; } } /**//**/ /**//// <summary> /// 连接串 /// </summary> public string ConnectString { get { return this._connectString; } set { this._connectString = value; } } #endregion DataAccess的构造函数#region DataAccess的构造函数 /**//// <summary> /// 空构造函数 /// <appSettings> /// <add key="DBConn" value="provider=microsoft.jet.oledb.4.0;data source="/> /// <add key="dbPath" value="~/App_Data/ArticleManage.mdb"/> ///</appSettings> /// </summary> public DataAccess() { ConnectString = System.Configuration.ConfigurationSettings.AppSettings["DBConn"]+System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["dbPath"])+";"; Conn = new System.Data.OleDb.OleDbConnection(ConnectString); if (System.Configuration.ConfigurationSettings.AppSettings["WriteLog"] == "true") { _writeLog = true; } else { _writeLog = false; } } ~DataAccess() { } /**//**/ /**//// <summary> /// DataAccess的构造函数 /// <appSettings> /// <add key="DBConn" value="provider=microsoft.jet.oledb.4.0;data source="/> /// <add key="DB1" value="~/App_Data/ArticleManage.mdb"/> ///</appSettings> /// </summary> /// <param name="DB1">要访问的数据库名,Web.config里设置的连接字符串对应的key</param> /// <param name="TableName1">要访问的数据表名</param> public DataAccess(string DB1, string TableName1) { this.ErrorMessage = ""; DB = DB1; TableName = TableName1; try { ConnectString = System.Configuration.ConfigurationSettings.AppSettings["DBConn"]+System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["DB"])+";"; if (System.Configuration.ConfigurationSettings.AppSettings["WriteLog"] == "true") { _writeLog = true; } else { _writeLog = false; } Conn = new System.Data.OleDb.OleDbConnection(ConnectString); Dict = new Hashtable(); Result = new Hashtable(); MapTable = new Hashtable(); DS = new DataSet(); // IS_Open = false; _path = "C:\WebDebug.log"; if (_writeLog) { if (!File.Exists(_path)) { using (SWCreate = File.CreateText(_path)) { SWCreate.WriteLine(" "); SWCreate.Close(); } } using (SWApp = File.AppendText(_path)) { SWApp.WriteLine(" "); } } } catch (Exception e) { this.ErrorMessage = e.ToString(); } } /**//**/ /**//// <summary> /// DataAccess的构造函数 /// </summary> /// <param name="CST">数据库的连接字符串</param> /// <param name="TableName1">要访问的数据表名</param> /// <param name="flag">是否初始化</param> public DataAccess(string CST, string TableName1, bool flag) { if (flag == true) { this.ErrorMessage = ""; TableName = TableName1; try { if (System.Configuration.ConfigurationSettings.AppSettings["WriteLog"] == "true") { _writeLog = true; } else { _writeLog = false; } ConnectString = CST; Conn = new System.Data.OleDb.OleDbConnection(ConnectString); Dict = new Hashtable(); Result = new Hashtable(); MapTable = new Hashtable(); DS = new DataSet(); _path = "C:\WebDebug.log"; if (_writeLog) { if (!File.Exists(_path)) { using (SWCreate = File.CreateText(_path)) { SWCreate.WriteLine(" "); SWCreate.Close(); } } using (SWApp = File.AppendText(_path)) { SWApp.WriteLine(" "); } } } catch (Exception e) { this.ErrorMessage = e.ToString(); } } } #endregion ExecuteNonQuery#region ExecuteNonQuery /**//// <summary> /// 执行无返回结果的SQL /// </summary> /// <param name="strSQL"></param> public void ExecuteNonQuery(string strSQL) { Comm = new OleDbCommand(); OleDbTransaction Trans; Conn.Open(); Trans = Conn.BeginTransaction(); Comm.CommandText = strSQL; Comm.Connection = Conn; Comm.Transaction = Trans; Comm.CommandTimeout = 60; try { if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "] CommandString = " + strSQL); SWApp.Close(); } } Comm.ExecuteNonQuery(); Trans.Commit(); this.Conn.Close(); } catch (Exception e) { Trans.Rollback(); this.Conn.Close(); if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "] Error Message : " + e.ToString()); } } this.ErrorMessage = e.ToString(); throw new Exception(e.ToString()); } } /**//// <summary> /// 执行无返回结果的SQL /// </summary> /// <param name="param">参数集合</param> /// <param name="strSQL"></param> public void ExecuteNonQuery(string strSQL, ICollection param) { Comm = new OleDbCommand(); OleDbTransaction Trans; Conn.Open(); Trans = Conn.BeginTransaction(); Comm.CommandText = strSQL; Comm.Connection = Conn; Comm.Transaction = Trans; Comm.CommandTimeout = 60; try { if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "] CommandString = " + strSQL); SWApp.Close(); } } if (param != null) { foreach (ParamInfo p in param) { IDbDataParameter pa = Comm.CreateParameter(); pa.ParameterName = p.Name; pa.Value = p.Value; //处理大文本 if (pa is System.Data.OleDb.OleDbParameter && pa.Value != null && pa.Value.ToString().Length >= 4000) { System.Data.OleDb.OleDbParameter p1 = pa as System.Data.OleDb.OleDbParameter; p1.OleDbType = System.Data.OleDb.OleDbType.VarWChar; Comm.Parameters.Add(p1); } else { Comm.Parameters.Add(pa); } } } Comm.ExecuteNonQuery(); FillParameterValue(Comm.Parameters, param); Trans.Commit(); this.Conn.Close(); } catch (Exception e) { Trans.Rollback(); this.Conn.Close(); if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "] Error Message : " + e.ToString()); } } this.ErrorMessage = e.ToString(); throw new Exception(e.ToString()); } } #endregion ExecuteScalar#region ExecuteScalar /**//// <summary> /// 返回查询结果的第一行第一列的值 /// </summary> /// <param name="strSQL"></param> /// <returns></returns> public object ExecuteScalar(string strSQL) { OleDbTransaction Trans; Comm = new OleDbCommand(); Conn.Open(); Trans = Conn.BeginTransaction(); Comm.CommandText = strSQL; Comm.Connection = Conn; Comm.Transaction =Trans ; Comm.CommandTimeout = 60; try { if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "] CommandString = " + strSQL); SWApp.Close(); } } object objResutl = Comm.ExecuteScalar(); Trans.Commit(); this.Conn.Close(); return objResutl; } catch (Exception e) { Trans.Rollback(); this.Conn.Close(); if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "] Error Message : " + e.ToString()); } } this.ErrorMessage = e.ToString(); throw new Exception(e.ToString()); } } /**//// <summary> /// 返回查询结果的第一行第一列的值 /// </summary> /// <param name="strSQL"></param> /// <param name="param">参数集合</param> /// <returns></returns> public object ExecuteScalar(string strSQL,ICollection param) { OleDbTransaction Trans; Comm = new OleDbCommand(); Conn.Open(); Trans = Conn.BeginTransaction(); Comm.CommandText = strSQL; Comm.Connection = Conn; Comm.Transaction =Trans ; Comm.CommandTimeout = 60; try { if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "] CommandString = " + strSQL); SWApp.Close(); } } if ( param != null ) { foreach ( ParamInfo p in param ) { IDbDataParameter pa = Comm.CreateParameter(); pa.ParameterName = p.Name; pa.Value = p.Value; pa.Direction = p.Direction; Comm.Parameters.Add(pa); } } object objResutl = Comm.ExecuteScalar(); FillParameterValue(Comm.Parameters,param); Trans.Commit(); this.Conn.Close(); return objResutl; } catch (Exception e) { Trans.Rollback(); this.Conn.Close(); if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "] Error Message : " + e.ToString()); } } this.ErrorMessage = e.ToString(); throw new Exception(e.ToString()); } } #endregion ExecuteDataSet#region ExecuteDataSet /**//// <summary> /// 执行SQL语句并返回DataTable对象 /// </summary> public DataSet ExecuteDataSet(string strSQL) { OleDbTransaction Trans; Comm = new OleDbCommand(); Conn.Open(); Trans = Conn.BeginTransaction(); Comm.CommandText = strSQL; Comm.Connection = Conn; Comm.Transaction =Trans ; Comm.CommandTimeout = 60; DataSet ds = new DataSet(); try { if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> Begin Get DataSet."); SWApp.WriteLine("CommandString = " + strSQL); SWApp.Close(); } } try { IDataReader dr = Comm.ExecuteReader(); do { DataTable dt = new DataTable(); dt.Locale = CultureInfo.CurrentCulture; DataColumn col = null; DataRowCollection rows = dr.GetSchemaTable().Rows; foreach(DataRow row in rows) { col = new DataColumn(); col.ColumnName = row["ColumnName"] == null ? null : row["ColumnName"].ToString(); col.Unique = Convert.ToBoolean(row["IsUnique"]); col.AllowDBNull = Convert.ToBoolean(row["AllowDBNull"]); col.ReadOnly = Convert.ToBoolean(row["IsReadOnly"]); col.DataType = row["DataType"] as Type; dt.Columns.Add(col); } while (dr.Read()) { DataRow row = dt.NewRow(); foreach(DataColumn c in dt.Columns) { row[c] = dr[c.ColumnName]; } dt.Rows.Add(row); } ds.Tables.Add(dt); } while (dr.NextResult()); dr.Close(); Trans.Commit(); } catch (Exception e) { Trans.Rollback(); this.ErrorMessage = e.ToString(); if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> Error Message: " + e.ToString()); } } throw new Exception(e.ToString()); } if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> End of Getting DataSet."); SWApp.Close(); } } } finally { Conn.Close(); } return ds; } /**//// <summary> /// 执行SQL语句并返回DataTable对象 /// <param name="strSQL">SQL语句</param> /// <param name="param">参数集合</param> /// </summary> public DataSet ExecuteDataSet(string strSQL, ICollection param) { OleDbTransaction Trans; Comm = new OleDbCommand(); Conn.Open(); Trans = Conn.BeginTransaction(); Comm.CommandText = strSQL; Comm.Connection = Conn; Comm.Transaction =Trans ; Comm.CommandTimeout = 60; DataSet ds = new DataSet(); try { if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> Begin Get DataSet."); SWApp.WriteLine("CommandString = " + strSQL); SWApp.Close(); } } try { if ( param != null ) { foreach ( ParamInfo p in param ) { IDbDataParameter pa = Comm.CreateParameter(); pa.ParameterName = p.Name; pa.Value = p.Value; pa.Direction = p.Direction; Comm.Parameters.Add(pa); } } IDataReader dr = Comm.ExecuteReader(); do { DataTable dt = new DataTable(); dt.Locale = CultureInfo.CurrentCulture; DataColumn col = null; DataRowCollection rows = dr.GetSchemaTable().Rows; foreach(DataRow row in rows) { col = new DataColumn(); col.ColumnName = row["ColumnName"] == null ? null : row["ColumnName"].ToString(); col.Unique = Convert.ToBoolean(row["IsUnique"]); col.AllowDBNull = Convert.ToBoolean(row["AllowDBNull"]); col.ReadOnly = Convert.ToBoolean(row["IsReadOnly"]); col.DataType = row["DataType"] as Type; dt.Columns.Add(col); } while (dr.Read()) { DataRow row = dt.NewRow(); foreach(DataColumn c in dt.Columns) { row[c] = dr[c.ColumnName]; } dt.Rows.Add(row); } ds.Tables.Add(dt); } while (dr.NextResult()); dr.Close(); Trans.Commit(); } catch (Exception e) { Trans.Rollback(); this.ErrorMessage = e.ToString(); if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> Error Message: " + e.ToString()); } } throw new Exception(e.ToString()); } if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> End of Getting DataSet."); SWApp.Close(); } } } finally { Conn.Close(); } return ds; } #endregion ExecuteDataTable#region ExecuteDataTable /**//// <summary> /// 执行SQL语句并返回DataTable对象 /// </summary> public DataTable ExecuteDataTable(string strSQL) { return ExecuteDataSet(strSQL).Tables[0]; } /**//// <summary> /// 执行SQL语句并返回DataTable对象 /// <param name="strSQL">SQL语句</param> /// <param name="param">参数集合</param> /// </summary> public DataTable ExecuteDataTable(string strSQL, ICollection param) { return ExecuteDataSet(strSQL,param).Tables[0]; } #endregion ExecuteDataReader#region ExecuteDataReader /**//// <summary> /// <param name="strSQL">SQL语句</param> /// </summary> public IDataReader ExecuteDataReader(string strSQL) { OleDbTransaction Trans; Comm = new OleDbCommand(); Conn.Open(); Trans = Conn.BeginTransaction(); Comm.CommandText = strSQL; Comm.Connection = Conn; Comm.Transaction = Trans; Comm.CommandTimeout = 60; IDataReader dr ; try { if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> Begin Get DataReader."); SWApp.WriteLine("CommandString = " + strSQL); SWApp.Close(); } } try { dr=Comm.ExecuteReader(); Trans.Commit(); } catch (Exception e) { Trans.Rollback(); this.ErrorMessage = e.ToString(); if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> Error Message: " + e.ToString()); } } throw new Exception(e.ToString()); } if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> End of Getting DataReader."); SWApp.Close(); } } } finally { Conn.Close(); } return dr; } /**//// <summary> /// /// <param name="strSQL">SQL语句</param> /// <param name="param">参数集合</param> /// </summary> public IDataReader ExecuteDataReader(string strSQL, ICollection param) { OleDbTransaction Trans; Comm = new OleDbCommand(); Conn.Open(); Trans = Conn.BeginTransaction(); Comm.CommandText = strSQL; Comm.Connection = Conn; Comm.Transaction = Trans; Comm.CommandTimeout = 60; IDataReader dr; try { if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> Begin Get DataReader."); SWApp.WriteLine("CommandString = " + strSQL); SWApp.Close(); } } try { if (param != null) { foreach (ParamInfo p in param) { IDbDataParameter pa = Comm.CreateParameter(); pa.ParameterName = p.Name; pa.Value = p.Value; pa.Direction = p.Direction; Comm.Parameters.Add(pa); } } dr = Comm.ExecuteReader(); Trans.Commit(); } catch (Exception e) { Trans.Rollback(); this.ErrorMessage = e.ToString(); if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> Error Message: " + e.ToString()); } } throw new Exception(e.ToString()); } if (_writeLog) { using (SWApp = File.AppendText(_path)) { SWApp.WriteLine("[" + DateTime.Now.ToString() + "]==> End of Getting DataReader."); SWApp.Close(); } } } finally { Conn.Close(); } return dr; } #endregion FillParameterValue#region FillParameterValue /**//// <summary> /// 填充输出型参数和返回值型参数 /// </summary> /// <param name="OutPutParameters">SQL命令执行后的参数集合</param> /// <param name="param">SQL命令执行前的参数集合</param> void FillParameterValue(System.Data.IDataParameterCollection OutPutParameters, ICollection param) { if (OutPutParameters == null || param == null) return; ArrayList procParam = new ArrayList(); foreach (IDbDataParameter OleDbParameter in OutPutParameters) { foreach (ParamInfo p in param) { if (p.Name == OleDbParameter.ParameterName) { procParam.Add(new ParamInfo(p.Name, OleDbParameter.Value, p.Direction, p.Size)); } } } ArrayList procOutParam = param as ArrayList; procOutParam.Clear(); foreach (ParamInfo p in procParam) //填充参数值 { procOutParam.Add(new ParamInfo(p.Name, p.Value, p.Direction, p.Size)); } } #endregion } ParamInfo#region ParamInfo /**//// <summary> /// SQL参数结构体 /// </summary> public struct ParamInfo { /**//// <summary> /// 参数名称 /// </summary> public string Name; /**//// <summary> /// 值 /// </summary> public object Value; /**//// <summary> /// 参数长度 /// </summary> public int Size; /**//// <summary> /// 参数方向 /// </summary> public ParameterDirection Direction; /**//// <summary> /// 初始化参数对象 /// </summary> /// <param name="name">参数名称</param> /// <param name="val">值</param> public ParamInfo(string name, object val) { Name = name; Value = val; Direction = ParameterDirection.Input; Size = Value == null ? 50 : Value.ToString().Length; } /**//// <summary> /// 初始化参数对象 /// </summary> /// <param name="name">参数名称</param> /// <param name="val">值</param> /// <param name="direction"></param> public ParamInfo(string name, object val, ParameterDirection direction) { Name = name; Value = val; Direction = direction; Size = Value == null ? 50 : Value.ToString().Length; } public ParamInfo(string name, object val, ParameterDirection direction, int size) { Name = name; Value = val; Direction = direction; Size = size; } } #endregion }
Accesshelper.cs
标签:
热心网友 时间:2022-04-07 18:02
1、添加ASP.NET Web Application项目,命名为UI,新建Web Form类型文件User.aspx(含User.aspx.cs)热心网友 时间:2022-04-07 19:20
elect count(pid) from cos_proct where pname like ?