formatuu 发表于 2018-10-22 09:53:40

SQL语句简单封装

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

  
namespace Student_MI
  
{
  
    ///
  
    /// 数据库助手类
  
    ///
  
public   class SqlHelper
  
    {
  
      private SqlConnection conn = null;//表示一个到 SQL Server 数据库的打开的连接
  
      private SqlCommand    cmd = null; //表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程
  
      private SqlDataReader sdr = null; //提供一种从 SQL Server 数据库读取行的只进流的方式
  
      ///
  
      /// 连接数据库
  
      ///
  
      public SqlHelper()
  
      {
  
            string connStr = "Data Source=.;Initial Catalog=StudentManager;Integrated Security=True";
  
            conn = new SqlConnection(connStr);
  
      }
  
      ///
  
      /// 打开数据库连接
  
      ///
  
      ///
  
      private SqlConnection GetConn()
  
      {
  
            if (conn.State == ConnectionState.Closed)
  
            {
  
                conn.Open();
  
            }
  
            return conn;
  
      }
  

  
      ///
  
      /// 执行不带参数的增删改SQL语句或存储过程
  
      ///
  
      /// 增删改SQL语句或存储过程
  
      /// 命令类型
  
      ///
  
      public int ExecuteNonQuery(string cmdText, CommandType ct)// CommandType命令类型
  
      {
  
            int res;
  
            try
  
            {
  
                cmd = new SqlCommand(cmdText, GetConn());//向打开的数据库中插入执行命令
  
                cmd.CommandType = ct;       //设置要执行命令的类型
  
                res = cmd.ExecuteNonQuery();//执行增删查改用到的方法,返回受影响的行数,是一个整数类型
  
            }
  
            catch (Exception ex)
  
            {
  
                throw ex;
  
            }
  
            finally
  
            {
  
                if (conn.State == ConnectionState.Open)//判断连接是否处于打开状态
  
                {
  
                  conn.Close();
  
                }
  
            }
  
            return res;
  
      }
  

  
      ///
  
      ///执行带参数的增删改SQL语句或存储过程
  
      ///
  
      /// 增删改SQL语句或存储过程
  
      /// 命令类型
  
      ///
  
      public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct)
  
      {
  
            int res;
  
            try
  
            {
  
                using (cmd = new SqlCommand(cmdText, GetConn()))
  
                {
  
                  cmd.CommandType = ct;
  
                  //cmd.Parameters的Add方法是增加一个参数,增加多个参数的的时候使用一个foreach循环而已将指定的 SqlParameter 对象添加到 SqlParameterCollection 中
  
                  //cmd.Parameters的AddRange方法是增加一个参数的数组将值数组添加到 SqlParameterCollection 的末尾
  
                  cmd.Parameters.AddRange(paras);
  
                  res = cmd.ExecuteNonQuery();//执行增删查改用到的方法,返回受影响的行数,是一个整数类型
  
                }
  
            }
  
            catch (Exception ex)
  
            {
  
                throw ex;
  
            }
  
            return res;
  
      }
  

  
      ///
  
      ///执行查询SQL语句或存储过程
  
      ///
  
      /// 查询SQL语句或存储过程
  
      /// 命令类型
  
      /// 返回DataTable对象
  
      public DataTable ExecuteQuery(string cmdText, CommandType ct)
  
      {
  
            DataTable dt = new DataTable();
  
            cmd = new SqlCommand(cmdText, GetConn());
  
            cmd.CommandType = ct;
  
            try
  
            {
  
                using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
  
                {
  
                  dt.Load(sdr);
  
                }
  
            }
  
            catch (Exception ex)
  
            {
  
                throw ex;
  
            }
  
            finally
  
            {
  
                if (conn.State == ConnectionState.Open)
  
                {
  
                  conn.Close();
  
                }
  
            }
  
            return dt;
  
      }
  

  
      ///
  
      ///执行带参数的查询SQL语句或存储过程
  
      ///
  
      /// 查询SQL语句或存储过程
  
      /// 参数集合
  
      /// 命令类型
  
      ///
  
      public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)
  
      {
  
            DataTable dt = new DataTable();
  
            cmd = new SqlCommand(cmdText, GetConn());
  
            cmd.CommandType = ct;
  
            cmd.Parameters.AddRange(paras);
  
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
  
            {
  
                dt.Load(sdr);
  
            }
  
            return dt;
  
      }
  
}
  
}


页: [1]
查看完整版本: SQL语句简单封装