zoukankan      html  css  js  c++  java
  • c#经典三层框架中的SqlHelper帮助类

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace DAL
    {
        class SqlHelper
        { 
            //获取字符串
            static string constr = ConfigurationManager.ConnectionStrings["JDNew"].ConnectionString;
            //创建连接
            static SqlConnection conn = new SqlConnection(constr);
            /// <summary>
            /// //打开连接,关闭连接。
            /// </summary>
            public static void ConnOpen()
            {
                if (conn.State == System.Data.ConnectionState.Closed)
                {
                    conn.Open();
                }
            }
            public static void ConnClose()
            {
                if (conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            /// <summary>
            /// 查询
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public static SqlDataReader ExecuteReader(string sql, params object[] param)
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                for (int i = 0; i < param.Length; i++)
                {
                    cmd.Parameters.AddWithValue("@" + i, param[i]);
                }
                SqlDataReader sdr = cmd.ExecuteReader();
                conn.Close();
                return sdr;
            }
            /// <summary>
            /// 修改
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public static bool ExecuteNonQuery(string sql, params object[] param)
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                for (int i = 0; i < param.Length; i++)
                {
                    cmd.Parameters.AddWithValue("@" + i, param[i]);
                }
                int j = cmd.ExecuteNonQuery();
                if (j > 0)
                {
                    conn.Close();
                    return true;
                }
                else
                {
                    conn.Close();
                    return false;
                }
            }
            /// <summary>
            /// 【存储过程】
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="commandType"></param>
            /// <param name="parameters"></param>
            /// <returns></returns>
            public static bool ExecuteNonQuery_Pro(string sql, CommandType commandType, SqlParameter[] parameters)
            {
                SqlCommand cmd = new SqlCommand(sql, conn) { CommandType = commandType };
                if (parameters != null)
                {
                    foreach (SqlParameter parameter in parameters)
                    {
                        cmd.Parameters.Add(parameter);
                    }
                }
                conn.Open();
                int count = cmd.ExecuteNonQuery();
                //conn.Close();
                if (count > 0)
                {
                    conn.Close();
                    return true;
                }
                else
                {
                    conn.Close();
                    return false;
                }
            }
            /// <summary>
            /// 数据集
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public static DataTable DataTable(string sql, params object[] param)
            {
                conn.Open();
                SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
                for (int i = 0; i < param.Length; i++)
                {
                    sda.SelectCommand.Parameters.AddWithValue("@" + i, param[i]);
                }
                DataTable dt = new DataTable();
                sda.Fill(dt);
                conn.Close();
                return dt;
            }
            /// <summary>
            /// 第一行第一列
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="param"></param>
            /// <returns></returns>
            public static object ExecuteScalar(string sql, params object[] param)
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                for (int i = 0; i < param.Length; i++)
                {
                    cmd.Parameters.AddWithValue("@" + i, param[i]);
                }
                object obj = cmd.ExecuteScalar();
                conn.Close();
                return obj;
            }
    
            /// <summary>
            /// 事务处理
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="count"></param>
            /// <param name="parm"></param>
            /// <returns></returns>
            public static bool Transaction(string sql, int count, params object[] parm)
            {
                ConnOpen();
                SqlCommand cmd = new SqlCommand(sql, conn);
                if (parm != null)
                {
                    for (int i = 0; i < parm.Length; i++)
                    {
                        cmd.Parameters.AddWithValue("@" + i, parm[i]);
                    }
                }
    
                //开启事务
                cmd.Transaction = conn.BeginTransaction();//利用连接对象 获取开启的事务赋值给命令对象 开启事务
                int result = 0;//定义一个变量来获取 执行成功的个数
                try
                {
                    result = cmd.ExecuteNonQuery();//正常执行
                }
                catch
                {
                    //如果出现异常代表执行没有成功
                    cmd.Transaction.Rollback();//如果没成功,回到原点
                    ConnClose();
                    return false;
                }
                if (result == count)
                {
                    //说明执行成功了 才可以想数据库中提交数据
                    cmd.Transaction.Commit();
                    ConnClose();
                    return true;
                }
                else
                {
                    //没有成功 回到原点
                    cmd.Transaction.Rollback();
                    ConnClose();
                    return false;
                }
            }
            /// <summary>
            /// 分页,限制起始索引
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="index"></param>
            /// <param name="MaxCount"></param>
            /// <param name="tablename"></param>
            /// <param name="pm"></param>
            /// <returns></returns>
            public static DataSet DataSet(string sql, int index, int MaxCount, string tablename, params object[] pm)
            {
                SqlConnection conn = new SqlConnection(constr);
                conn.Open();
                SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
                for (int i = 0; i < pm.Length; i++)
                {
                    sda.SelectCommand.Parameters.AddWithValue("@" + i, pm[i]);
                }
                DataSet ds = new DataSet();
                sda.Fill(ds, index, MaxCount, tablename);
                conn.Close();
                return ds;
            }
    
        }
    }
  • 相关阅读:
    HDU 1017—A Mathematical Curiosity
    N !
    L
    J
    Danganronpa
    A water problem
    hdu 5461 Largest Point
    India and China Origins hdu 5652 (BFS+二分)
    D (多校训练三) poj1919 (二分)
    Discovering Gold lightoj 1030 (dp+期望)
  • 原文地址:https://www.cnblogs.com/SeNaiTes/p/9382077.html
Copyright © 2011-2022 走看看