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

}

  

你可能感兴趣的:(Access)