zoukankan      html  css  js  c++  java
  • Accesshelper.cs

    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
    }
    

      

  • 相关阅读:
    Pascal's Triangle II
    Pascal's Triangle
    Best Time to Buy and Sell Stock II
    Best Time to Buy and Sell Stock
    Populating Next Right Pointers in Each Node
    path sum II
    Path Sum
    [转载]小波时频图
    [转载]小波时频图
    [转载]Hilbert变换及谱分析
  • 原文地址:https://www.cnblogs.com/huxiaolin/p/4488612.html
Copyright © 2011-2022 走看看