如何簡練數據庫數據重複調用?封裝一個DataBaseHelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//添加三行引用 如下:

using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace DBHelper
{

 public class DBHelper
    {
       //static靜態成員,可以共享一份數據
        private static string connString;
        static DBHelper()//構造函數處理初始化
        {
            //連接數據庫
            connString = ConfigurationManager.AppSettings["connString"];
        }

        /// <summary>
        /// 處理增刪改查  params可變化參數
        /// </summary>
        /// <param name="cmdText"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>

        public static int ExcuteNonQuery(string cmdText,params SqlParameter[] parameters)
        {
            using (SqlConnection connection = new SqlConnection(connString))
            {
                using (SqlCommand cmd = new SqlCommand(cmdText, connection))
                {
                    connection.Open();
                    if (parameters.Length > 0)
                    {
                        cmd.Parameters.AddRange(parameters);
                    }
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        /// <summary>
        /// 普通版:執行一個sql語句,查詢出來一個值
        /// </summary>
        //public object ExcuteScalar(string cmdText,params SqlParameter[] parameters)
        //{
        //    using (SqlConnection connection = new SqlConnection(connString))
        //    {
        //        using (SqlCommand cmd = new SqlCommand(cmdText, connection))
        //        {
        //            connection.Open();
        //            if (parameters.Length > 0)
        //            {
        //                cmd.Parameters.AddRange(parameters);
        //            }
        //            return cmd.ExecuteScalar();
        //        }
        //    }
        //}

        //使用泛型版(最優):執行一個sql語句,查詢出來一個值
        public static T ExcuteScalar<T>(string cmdText, params SqlParameter[] parameters)
        {
            using (SqlConnection connection = new SqlConnection(connString))
            {
                using (SqlCommand cmd = new SqlCommand(cmdText, connection))
                {
                    connection.Open();
                    if (parameters.Length > 0)
                    {
                        cmd.Parameters.AddRange(parameters);
                    }
                    return (T)cmd.ExecuteScalar();
                }
            }
        }


        /// <summary>
        ///  讀取數據集
        /// </summary>
        /// <param name=""></param>
        /// <returns></returns>
        public static SqlDataReader ExecuteReader(string cmdText,params SqlParameter[] parameters)
        {
            using (SqlConnection connection = new SqlConnection(connString))
            {
                using (SqlCommand cmd = new SqlCommand(cmdText, connection))
                {
                    connection.Open();
                    if (parameters.Length > 0)
                    {
                        cmd.Parameters.AddRange(parameters);
                    }
                    //讀完數據,關閉
                    return cmd.ExecuteReader(CommandBehavior.CloseConnection);
                }
            }
        }

        public static DataSet GetDataSet(string cmdText,params SqlParameter[] parameters)
        {
            DataSet ds = new DataSet();
            using (SqlDataAdapter adapter = new SqlDataAdapter(cmdText, connString))
            {
                if (parameters.Length > 0)
                {
                    adapter.SelectCommand.Parameters.AddRange(parameters);
                }
                adapter.Fill(ds);
            }
            return ds;
        }

        public static DataTable GetDataTable(string cmdText,params SqlParameter[] parameters)
        {
            return GetDataSet(cmdText, parameters).Tables[0];
        }
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章