⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbfunc.cs

📁 JAVA的精彩实例
💻 CS
字号:
using System;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Collections;
using System.Diagnostics;
using System.Web;
using System.Configuration;

namespace feiyun0112.cnblogs.com.CSDNReader.Functions
{

    public class DBFunc : IDisposable
    {
        private static string mConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CSDNReader.mdb;Persist Security Info=False";
        private OleDbConnection mCon ;
        private OleDbDataAdapter mAdapter;
        private OleDbCommand mCom ;
        private OleDbTransaction mTran ;

        //Whether need to create Transaction
        private bool mIsHaveTransaction;
        //Whether auto close database connection runed a mothed
        private bool mIsAutoClose ;

        /// <summary>
        /// Init DBFunc class
        /// </summary>
        /// <param name="isHaveTransaction">Whether need to create a transaction </param>
        public DBFunc(bool isAutoClose, bool isHaveTransaction)
        {
            mIsHaveTransaction = isHaveTransaction;
            mIsAutoClose = isAutoClose;

            OpenCon();
            mCom = new OleDbCommand();
            mCom.Connection = mCon;

            if (mIsHaveTransaction)
            {
                mTran = mCon.BeginTransaction();
                mCom.Transaction = mTran;
            }
        }

        /// <summary>
        /// default isAutoClose is true, isHaveTransaction is false
        /// </summary>
        public DBFunc()
        {
            mIsAutoClose = true;
            OpenCon();
            mCom = new OleDbCommand();
            mCom.Connection = mCon;
        }

        /// <summary>
        /// Whether need to create a transaction
        /// </summary>
        public bool IsHaveTransaction
        {
            get
            {
                return mIsHaveTransaction;
            }
            set
            {
                mIsHaveTransaction = value;
            }
        }
        /// <summary>
        /// Whether auto close data connection
        /// </summary>
        public bool IsAutoClose
        {
            get
            {
                return mIsAutoClose;
            }
            set
            {
                mIsAutoClose = value;
            }
        }

        /// <summary>
        /// get or set a connection string
        /// </summary>
        /// 
        public static string ConnectionDBString
        {
            get
            {
                return mConnectionString;
            }
            set
            {
                mConnectionString = value;
            }
        }

        /// <summary>
        /// get or set a OleDbConnection,if OleDbConnection is not existing or close,create a OleDbconnection or open it
        /// </summary>
        public OleDbConnection Con
        {
            get
            {
                return mCon;
            }
            set
            {
                mCon = value;
            }
        }

        /// <summary>
        /// get or set a OleDbCommand
        /// </summary>
        public OleDbCommand Com
        {
            get
            {
                return mCom;
            }
            set
            {
                mCom = value;
            }
        }

        /// <summary>
        ///Execute multi OleDb,and return nothing
        /// </summary>
        /// <param name="OleDbList">include multi OleDb</param>
        public void ExecuteSql(ArrayList OleDbList)
        {
            string Sql = "";

            if (OleDbList != null)
            {
                for (int i = 0; i < OleDbList.Count; i++)
                {
                    Sql = OleDbList[i].ToString();
                    WriteOleDbLog(Sql);
                    mCom.CommandText = Sql;
                    mCom.ExecuteNonQuery();
                }
            }

            AutoCloseCon();
        }

        /// <summary>
        /// Execute single OleDb,and return nothing
        /// </summary>
        /// <param name="OleDb">input OleDb</param>
        /// <returns></returns>
        public void ExecuteSql(string Sql)
        {
            WriteOleDbLog(Sql);
            mCom.CommandText = Sql;
            mCom.ExecuteNonQuery();
            AutoCloseCon();
        }


        /// <summary>
        /// Execute single OleDb,and return OleDbDataReader
        /// </summary>
        /// <param name="OleDb">input OleDb</param>
        /// <returns>OleDbDataReader</returns>
        public OleDbDataReader GetDataReader(string Sql)
        {
            OleDbDataReader dataReader;

            WriteOleDbLog(Sql);
            if (mCom == null)
            {
                mCom = new OleDbCommand();
                mCom.Connection = mCon;
            }
            mCom.CommandText = Sql;

            dataReader = mCom.ExecuteReader();

            AutoCloseCon();

            return dataReader;
        }

        /// <summary>
        /// Execture a OleDb,return a Double type value
        /// </summary>
        /// <param name="OleDb">input OleDb</param>
        /// <returns></returns>
        public double GetDoubleValue(string Sql)
        {
            object oRet = null;
            WriteOleDbLog(Sql);
            mCom.CommandText = Sql;
            oRet = mCom.ExecuteScalar();

            AutoCloseCon();
            if (oRet == null || oRet == System.DBNull.Value)
                return 0;
            else
                return double.Parse(oRet.ToString());
        }

        /// <summary>
        /// Execture a OleDb,return a float type value
        /// </summary>
        /// <param name="OleDb">input OleDb</param>
        /// <returns></returns>
        public float GetFloatValue(string Sql)
        {
            object oRet = null;
            WriteOleDbLog(Sql);
            mCom.CommandText = Sql;
            oRet = mCom.ExecuteScalar();

            AutoCloseCon();
            if (oRet == null || oRet == System.DBNull.Value)
                return 0f;
            else
                return float.Parse(oRet.ToString());
        }

        /// <summary>
        /// Execture a OleDb,return a float type value
        /// </summary>
        /// <param name="OleDb">input OleDb</param>
        /// <returns></returns>
        public int GetIntValue(string Sql)
        {
            object oRet = null;
            WriteOleDbLog(Sql);
            mCom.CommandText = Sql;
            oRet = mCom.ExecuteScalar();

            AutoCloseCon();
            if (oRet == null || oRet == System.DBNull.Value)
                return 0;
            else
                return int.Parse(oRet.ToString());
        }
        /// <summary>
        /// Execture a OleDb,return a string type value
        /// </summary>
        /// <param name="OleDb">input OleDb</param>
        /// <returns></returns>
        public object GetObjectValue(string Sql)
        {
            object oRet = null;
            WriteOleDbLog(Sql);
            mCom.CommandText = Sql;
            oRet = mCom.ExecuteScalar();

            AutoCloseCon();

            return oRet;
        }


        /// <summary>
        /// Execture a OleDb,return a string type value
        /// </summary>
        /// <param name="OleDb">input OleDb</param>
        /// <returns></returns>
        public string GetValue(string Sql)
        {
            string sRet = "";
            object oRet = null;
            WriteOleDbLog(Sql);
            mCom.CommandText = Sql;
            oRet = mCom.ExecuteScalar();

            if (oRet == null || oRet == System.DBNull.Value)
            {
                sRet = null;
            }
            else
            {
                sRet = oRet.ToString();
            }
            AutoCloseCon();

            return sRet;
        }

        /// <summary>
        /// Execture a OleDb return a dataset with default table name
        /// </summary>
        /// <param name="OleDb">Input OleDb</param>
        public DataSet GetDataSet(string Sql)
        {
            DataSet dataSet = new DataSet();

            WriteOleDbLog(Sql);
            mCom.CommandText = Sql;
            if (mAdapter == null)
            {
                mAdapter = new OleDbDataAdapter();
            }
            mAdapter.SelectCommand = mCom;
            mAdapter.Fill(dataSet);

            AutoCloseCon();

            return dataSet;
        }
        public DataRow GetDataFirstRow(string Sql)
        {
            DataSet dataSet = new DataSet();

            WriteOleDbLog(Sql);
            mCom.CommandText = Sql;
            if (mAdapter == null)
            {
                mAdapter = new OleDbDataAdapter();
            }
            mAdapter.SelectCommand = mCom;
            mAdapter.Fill(dataSet);

            AutoCloseCon();
            if (dataSet.Tables[0].Rows.Count == 0)
            {
                return null;
            }
            else
            {
                return dataSet.Tables[0].Rows[0];
            }


        }

        /// <summary>
        /// Execture a OleDb return a dataset with a table name
        /// </summary>
        /// <param name="OleDb">input OleDb</param>
        /// <param name="TableName">Table name in dataset </param>
        /// <param name="dataSet">Fill the data in the dataset</param>
        public void GetDataSet(string Sql, string TableName, DataSet dataSet)
        {
            WriteOleDbLog(Sql);
            mCom.CommandText = Sql;
            if (mAdapter == null)
            {
                mAdapter = new OleDbDataAdapter();
            }
            mAdapter.SelectCommand = mCom;
            mAdapter.Fill(dataSet, TableName);

            AutoCloseCon();
        }


        public void CloseCon()
        {

            if (mCon != null && mCon.State == ConnectionState.Open)
            {
                mCon.Close();
            }

            if (mCom != null)
            {
                mCom.Dispose();
                mCom = null;
            }

            if (mAdapter != null)
            {
                mAdapter.Dispose();
                mAdapter = null;
            }

            if (mCon != null)
            {
                mCon.Dispose();
                mCon = null;
            }
        }


        /// <summary>
        /// Close OleDbConnection and release resources
        /// </summary>
        public void CommitTranAndCloseCon()
        {
            CommitTran();

            CloseCon();
        }

        private void AutoCloseCon()
        {
            if (mIsAutoClose)
            {
                CommitTranAndCloseCon();
            }
        }
        /// <summary>
        /// Open a OleDbConnection ,if OleDbConnection is existed ,and do nothing
        /// </summary>
        public void OpenCon()
        {
            mCon = new OleDbConnection();
            mCon.ConnectionString = mConnectionString;
            mCon.Open();
        }

        /// <summary>
        /// Commit a existed transaction
        /// </summary>
        public void CommitTran()
        {
            if (mTran != null)
            {
                mTran.Commit();
                mTran = null;
            }
        }
        /// <summary>
        /// Create a transation
        /// </summary>
        public void BeginTran()
        {
            if (mTran == null)
            {
                mTran = mCon.BeginTransaction();
            }
        }
        /// <summary>
        /// Rollback transaction
        /// </summary>
        public void RollbackTran()
        {
            if (mTran != null)
            {
                mTran.Rollback();
                mTran = null;
            }
        }
        /// <summary>
        /// Rollback transaction
        /// </summary>
        public void RollbackTranAndClose()
        {
            if (mTran != null)
            {
                mTran.Rollback();
                mTran = null;
            }
            CloseCon();
        }
        //Wtite OleDb Log
        private static void WriteOleDbLog(string strOleDb)
        {
            Debug.WriteLine(strOleDb);
        }

        public static string SpecialChar(string str)
        {
            if (str == null)
            {
                return string.Empty;
            }
            else
            {
                return str.Replace(@"'", @"''");
            }
        }

        #region IDisposable 成员

        public  void Dispose()
        {
            Dispose(true);
        }
        void Dispose(bool disposing)
        {
            if (disposing)
            {
                CloseCon();
            }
            else
            {
                CloseCon();
            }
        }

        #endregion
    }


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -