DAL(数据库访问层)

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

/// <summary>
///DBHelper 的摘要说明
/// </summary>
public static class DBHelper
{
    public static SqlConnection conn;
    /// <summary>
    /// 获取连接对象
    /// </summary>
    public static SqlConnection Conn
    {
        get
        {
            //获取连接字符串
            string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ToString();
            if(conn == null)
            {//连接为空
                conn = new SqlConnection(connectionString);
                conn.Open();
            }else if(conn.State == System.Data.ConnectionState.Closed)
            {//连接状态为空
                conn.Open();
            }else if(conn.State == System.Data.ConnectionState.Broken)
            {//连接断断续续(卡)
                conn.Close();
                conn.Open();
            }
            return conn;
        }
    }
    /// <summary>
    /// 执行,并返回影响的行数
    /// </summary>
    /// <returns></returns>
    public static int ExecuteCommand(string safesql)
    {
        SqlCommand cmd = new SqlCommand(safesql,conn);
        int result =  cmd.ExecuteNonQuery();
        return result;
    }
    /// <summary>
    /// 返回影响行数
    /// </summary>
    /// <param name="safesql"></param>
    /// <param name="pala"></param>
    /// <returns></returns>
    public static int ExectueCommand(string safesql,params SqlParameter[] pala)
{
    SqlCommand cmd = new SqlCommand();
    cmd.Parameters.AddRange(pala);
    int result = cmd.ExecuteNonQuery();
    return result;
}
    /// <summary>
    /// 执行查询返回查询得到的第一行第一列的对象
    /// </summary>
    /// <param name="safesql"></param>
    /// <returns></returns>
    public static string ReturnStringScalar(string safesql)
    {
        SqlCommand cmd = new SqlCommand(safesql,conn);
        try
        {
            string result = cmd.ExecuteScalar().ToString();
            return result;
        }
        catch
        {
            return "0";
        }
        finally
        {
            conn.Close();
        }
    }
    public static int GetScalar(string safesql)
    {
        SqlCommand cmd = new SqlCommand(safesql,conn);
        try
        {
            int result = Convert.ToInt32(cmd.ExecuteScalar());
            return result;
        }
        catch
        {
            return 0;
        }
        finally
        {
            conn.Close();
        }
    }
    /// <summary>
    /// 执行代码返回查询得到的第一行第一列的对象
    /// </summary>
    /// <param name="safesql"></param>
    /// <param name="pala"></param>
    /// <returns></returns>
    public static int GetScalar(string safesql,params SqlParameter[] pala)
    {
        SqlCommand cmd = new SqlCommand(safesql,conn);
        cmd.Parameters.AddRange(pala);
        int result = Convert.ToInt32(cmd.ExecuteScalar());
        return result;
    }
    /// <summary>
    /// 通过Sql语句返回SqlDataReader对象
    /// </summary>
    /// <returns></returns>
    public static SqlDataReader GetReader(string safesql)
    {
        conn.Open();
        SqlCommand cmd = new SqlCommand(safesql,conn);
        SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        return dr;
    }


    /// <summary>
    /// 通过Sql语句返回SqlDataReader对象
    /// </summary>
    /// <param name="safesql"></param>
    /// <param name="pala"></param>
    /// <returns></returns>
    public static SqlDataReader GetReader(string safesql,params SqlParameter[] pala)
    {

        SqlCommand cmd = new SqlCommand(safesql,conn);
        cmd.Parameters.AddRange(pala);
        SqlDataReader dr = cmd.ExecuteReader();
        return dr;
    }
    /// <summary>
    /// 通过Sql返回Table
    /// </summary>
    /// <param name="safesql"></param>
    /// <returns></returns>
    public static DataTable GetDataSet(string safesql)
    {
        DataSet ds = new DataSet();
        SqlCommand cmd = new SqlCommand(safesql,conn);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(ds);
        return ds.Tables[0];
    }
    /// <summary>
    /// 通过Sql返回Table
    /// </summary>
    /// <param name="safesql"></param>
    /// <param name="pala"></param>
    /// <returns></returns>
    public static DataTable GetDataSet(string safesql,params SqlParameter[] pala)
    {
        DataSet ds = new DataSet();
        SqlCommand cmd = new SqlCommand(safesql,conn);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        cmd.Parameters.AddRange(pala);
        da.Fill(ds);
        return ds.Tables[0];
    }

    /// <summary>
    /// GetDataSet(方法)和该方法都一样,为了不浪费资源,建议使用该方法
    /// </summary>
    /// <param name="safesql"></param>
    /// <returns></returns>
    public static DataTable GetDataTable(string safesql)
    {
        SqlCommand cmd = new SqlCommand(safesql, conn);
        SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        DataTable dt = new DataTable();
        dt.Load(dr);
        dr.Close();
        return dt;
    }

}

原文地址:https://www.cnblogs.com/scsuns520/p/1632999.html