通用DBHelper

C#版,用了好幾年了。還比較全的,在此記錄,歡迎補充、指導。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;


namespace RushiDAL
{
    public class DBHelper
    {
        static readonly string strCon = ConfigurationManager.ConnectionStrings["rszyManage"].ConnectionString;


        /// <summary>
        /// 連接數據庫
        /// </summary>
        /// <returns></returns>
        public static SqlConnection GetCon()
        {
            SqlConnection con = new SqlConnection(strCon);
            return con;
        }


        /// <summary>
        /// 查詢多行多列方法
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        public static DataSet ExecuteQuery(string sql, SqlParameter[] para)
        {
            SqlConnection con = GetCon();
            DataSet ds = new DataSet();
            SqlDataAdapter adapter = new SqlDataAdapter(sql, con);
            if (para != null)
            {
                adapter.SelectCommand.Parameters.AddRange(para);
            }
            adapter.Fill(ds);
            CloseResource(con); //關閉資源 2013-11-25 add
            return ds;
        }


        /// <summary>
        /// 非查詢方法
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="para"></param>
        /// <returns>返回:受影響的行數</returns>
        public static int ExecuteNonQuery(string sql, SqlParameter[] para)
        {
            SqlConnection con = GetCon();
            con.Open();
            SqlCommand cmd = new SqlCommand(sql, con);
            if (para != null)
            {
                cmd.Parameters.AddRange(para);
            }
            int result = cmd.ExecuteNonQuery();
            CloseResource(con); //關閉資源
            return result;
        }


        /// <summary>
        /// 執行存儲過程(非查詢)
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        public static int StoredNonQuery(string sql, SqlParameter[] para)
        {
            SqlConnection con = GetCon();
            con.Open();
            SqlCommand cmd = new SqlCommand(sql, con);
            cmd.CommandType = CommandType.StoredProcedure;
            if (para != null)
            {
                cmd.Parameters.AddRange(para);
            }
            int result = cmd.ExecuteNonQuery();
            CloseResource(con);
            return result;
        }


        /// <summary>
        /// 查詢一行一列
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        public static object ExecuteScalar(string sql, SqlParameter[] para)
        {
            SqlConnection con = GetCon();
            con.Open();
            SqlCommand cmd = new SqlCommand(sql, con);
            if (para != null)
            {
                cmd.Parameters.AddRange(para);
            }
            object obj = cmd.ExecuteScalar();
            CloseResource(con); //關閉資源 2013-11-25 add
            return obj;
        }


        /// <summary>
        /// 關閉資源
        /// </summary>
        /// <param name="con"></param>
        public static void CloseResource(SqlConnection con)
        {
            if (con != null)
            {
                con.Close();
            }
        }
    }
}


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