zoukankan      html  css  js  c++  java
  • 手写工具之——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];
            }
        }
    }
  • 相关阅读:
    回首2016,展望2017
    认识多线程
    对CloseHandle用法的理解
    CDC、HDC、pDC之间的关系
    兼容位图和兼容DC的理解
    窗口中显示bmp图片的过程
    创建一个bmp格式的简单方法
    说明为什么Button控件不能使用CustomDraw技术
    MFC自绘Button按钮分析和实现
    VC之美化界面篇
  • 原文地址:https://www.cnblogs.com/Arlar/p/4923797.html
Copyright © 2011-2022 走看看