.NET 中數據訪問用的 DBHelper(Sql Server) 類

    public class DBHelper
    {
        private static string DBConnectString = "Data Source=.;Initial Catalog=Roseonly;Integrated Security=True";
        private static SqlConnection conn;
        public static SqlDataAdapter dap;
        private static SqlCommand cmd;
        private static SqlCommandBuilder builder;
        private static DBHelper dBHelper;
        public static DataSet ds = new DataSet();
        public DBHelper()
        {
            conn = new SqlConnection(DBConnectString);
        }
        /// <summary>
        /// 實例化DBHelper對象
        /// </summary>
        /// <returns></returns>
        public static DBHelper Instance()
        {
            if (dBHelper == null)
            {
                dBHelper = new DBHelper();
            }
            return dBHelper;
        }
        /// <summary>
        /// 打開數據庫連接
        /// </summary>
        void DBOpen()
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
        }
        /// <summary>
        /// 關閉數據庫連接
        /// </summary>
        void DBClose()
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        /// <summary>
        /// 執行SQL語句獲取數據集
        /// </summary>
        /// <param name="sql">sql語句</param>
        /// <returns>DataTable數據集</returns>
        public DataTable GetDataTableBySql(string sql)
        {
            DBOpen();
            DataTable dt = new DataTable();
            dap = new SqlDataAdapter(sql, conn);
            try
            {
                dap.Fill(dt);
                return dt;
            }
            catch
            {
                return null;
            }
            finally
            {
                DBClose();
            }
        }
        /// <summary>
        /// 執行SQL語句
        /// </summary>
        /// <param name="sql">SQL語句</param>
        /// <returns>是否執行成功</returns>
        public bool ExcuteSql(string sql)
        {
            DBOpen();
            cmd = new SqlCommand(sql, conn);
            try
            {
                cmd.ExecuteNonQuery();
                return true;
            }
            catch
            {
                return false;
            }
            finally
            {
                DBClose();
            }
        }
        /// <summary>
        /// 執行存儲過程
        /// </summary>
        /// <param name="proName">存儲過程名稱</param>
        /// <param name="paras">存儲過程參數</param>
        /// <returns>是否執行成功</returns>
        public bool ExcuteProcedure(string proName, SqlParameter[] paras)
        {
            DBOpen();
            cmd = new SqlCommand(proName, conn);
            cmd.CommandType = CommandType.StoredProcedure;

            for (int i = 0; i < paras.Length; i++)
            {
                cmd.Parameters.Add(paras[i]);
            }
            try
            {
                cmd.ExecuteNonQuery();
                return true;
            }
            catch
            {
                return false;
            }
            finally
            {
                DBClose();
            }

        }
        /// <summary>
        /// 執行存儲過程獲得數據集
        /// </summary>
        /// <param name="proName">存儲過程名</param>
        /// <param name="paras">存儲過程參數</param>
        /// <returns>DataTable數據集</returns>
        public DataTable GetDataTableByProcedure(string proName, SqlParameter[] paras)
        {
            DBOpen();
            cmd = new SqlCommand(proName, conn);
            cmd.CommandType = CommandType.StoredProcedure;
            dap = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();

            for (int i = 0; i < paras.Length; i++)
            {
                cmd.Parameters.Add(paras[i]);
            }
            try
            {
                dap.Fill(dt);
                return dt;
            }
            catch
            {
                return null;
            }
            finally
            {
                DBClose();
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public DataSet GetDataSetBySql(string sql)
        {
            DBOpen();
            dap = new SqlDataAdapter(sql, conn);
            try
            {
                builder = new SqlCommandBuilder(dap);
                return ds;
            }
            catch
            {
                return null;
            }
            finally
            {
                DBClose();
            }
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章