手写工具之——SQLHelper

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

/// <summary>
///     SQL帮助器
/// </summary>
public class SQLHelper
{
    private static string ConnStr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

    //增删改(insert、delete、update)
    public static int DoNonQuery(string sql, List<SqlParameter> ps = null)
    {
        using (SqlConnection conn = new SqlConnection(ConnStr))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            if (ps != null) {
                cmd.Parameters.AddRange(ps.ToArray());
            }
            int RowsAffectedCount = cmd.ExecuteNonQuery();
            conn.Close();

            return RowsAffectedCount;
        }
    }

    //增删改(insert、delete、update)
    public static int DoNonQuery(string sql, params SqlParameter[] ps)
    {
        using (SqlConnection conn = new SqlConnection(ConnStr)) 
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            if (ps != null) {
                cmd.Parameters.AddRange(ps);
            }
            int RowsAffectedCount = cmd.ExecuteNonQuery();
            conn.Close();

            return RowsAffectedCount;
        }
    }

    //取单行单列对象(insert、select)
    public static object DoScalar(string sql, List<SqlParameter> ps = null)
    {
        using (SqlConnection conn = new SqlConnection(ConnStr))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            if (ps != null) {
                cmd.Parameters.AddRange(ps.ToArray());
            }
            object ScalarObj = cmd.ExecuteScalar();
            conn.Close();

            return ScalarObj;
        }
    }

    //取单行单列对象(insert、select)
    public static object DoScalar(string sql, params SqlParameter[] ps)
    {
        using (SqlConnection conn = new SqlConnection(ConnStr)) {
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            if (ps != null) {
                cmd.Parameters.AddRange(ps);
            }
            object ScalarObj = cmd.ExecuteScalar();
            conn.Close();

            return ScalarObj;
        }
    }

    //断开式取DataTable对象(select)
    public static DataTable DoDataTable(string sql, List<SqlParameter> ps = null)
    {
        using (SqlConnection conn = new SqlConnection(ConnStr))
        {
            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter(sql, conn);
            if (ps != null) {
                da.SelectCommand.Parameters.AddRange(ps.ToArray());
            }
            DataSet ds = new DataSet();
            da.Fill(ds);
            conn.Close();

            return ds.Tables[0];
        }
    }

    //断开式取DataTable对象(select)
    public static DataTable DoDataTable(string sql, params SqlParameter[] ps)
    {
        using (SqlConnection conn = new SqlConnection(ConnStr)) 
        {
            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter(sql, conn);
            if (ps != null) {
                da.SelectCommand.Parameters.AddRange(ps);
            }
            DataSet ds = new DataSet();
            da.Fill(ds);
            conn.Close();

            return ds.Tables[0];
        }
    }

    /*
     * 下面两个方法新加,未测试
     */

    //连接式读取数据(select)
    public static SqlDataReader DoReader(string sql, List<SqlParameter> ps = null)
    {
        using (SqlConnection conn = new SqlConnection(ConnStr)) 
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            if (ps != null) {
                cmd.Parameters.AddRange(ps.ToArray());
            }
            SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            conn.Close();

            return dr;
        }
    }

    //存储过程式取DataTable对象
    public static DataTable DoProcedure(string sql, List<SqlParameter> ps = null)
    {
        using (SqlConnection conn = new SqlConnection(ConnStr)) 
        {
            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter(sql, conn);
            //设定命令类型
            da.SelectCommand.CommandType = CommandType.StoredProcedure;
            if (ps != null) {
                da.SelectCommand.Parameters.AddRange(ps.ToArray());
            }
            DataSet ds = new DataSet();
            da.Fill(ds);
            conn.Close();

            return ds.Tables[0];
        }
    }
}

 

posted @ 2015-10-30 17:07  Arlar  阅读(212)  评论(0编辑  收藏  举报