黑马程序员技术交流社区

标题: SQLHelper [打印本页]

作者: 戴鑫凯    时间: 2013-2-19 20:42
标题: SQLHelper
小弟不才,通过几天自学ado.net,写出了自己的第一个工具类,以后会慢慢完善的.
using System;

using System.Collections.Generic;

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

using System.Linq;

using System.Text;



namespace DXKLibrary.SQL

{

   /// <summary>

   /// 提供与数据库连接的操作

   /// </summary>

   public static class SQLHelper

   {

       //连接字符串

       static readonly string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;

       /// <summary>

       /// 执行非查询的数据库操作

       /// </summary>

       /// <param name="cmdText">数据库语句</param>

       /// <param name="type">要执行的类型</param>

       /// <param name="pars">参数</param>

       /// <returns>得到受影响的行数</returns>

       public static int ExecuteNonQuery(string cmdText, CommandType type, params SqlParameter[] pars)

       {

           //创建连接通道

           using (SqlConnection conn = new SqlConnection(connStr))

           {

               //创建操作对象

               using (SqlCommand cmd = new SqlCommand(cmdText, conn))

               {

                   //得到操作的类型

                   cmd.CommandType = type;

                   //添加参数

                   if (pars.Length != 0)

                   {

                       cmd.Parameters.AddRange(pars);

                   }

                   //开始连接数据库

                   conn.Open();

                   //执行操作,并返回结果

                   return cmd.ExecuteNonQuery();

               }

           }

       }

       /// <summary>

       /// 执行非查询的数据库操作

       /// </summary>

       /// <param name="cmdText">数据库语句</param>

       /// <param name="pars">参数</param>

       /// <returns>得到受影响的行数</returns>

       public static int ExecuteNonQuery(string cmdText, params SqlParameter[] pars)

       {

           return ExecuteNonQuery(cmdText, CommandType.Text, pars);

       }

       /// <summary>

       /// 执行查询,得到第一行第一个数据

       /// </summary>

       /// <param name="cmdText">数据库语句</param>

       /// <param name="type">要执行的类型</param>

       /// <param name="pars">参数</param>

       /// <returns>返回查询的数据</returns>

       public static object ExecuteScalar(string cmdText, CommandType type, params SqlParameter[] pars)

       {

           //创建连接通道

           using (SqlConnection conn = new SqlConnection(connStr))

           {

               //创建操作对象

               using (SqlCommand cmd = new SqlCommand(cmdText, conn))

               {

                   //得到操作类型

                   cmd.CommandType = type;

                   //添加参数

                   if (pars.Length != 0)

                   {

                       cmd.Parameters.AddRange(pars);

                   }

                   //连接数据库

                   conn.Open();

                   //开始查询,返回结果

                   return cmd.ExecuteScalar();

               }

           }

       }

       /// <summary>

       /// 执行查询,得到第一行第一个数据

       /// </summary>

       /// <param name="cmdText">数据库语句</param>

       /// <param name="pars">参数</param>

       /// <returns>返回查询的数据</returns>

       public static object ExecuteScalar(string cmdText, params SqlParameter[] pars)

       {

           return ExecuteScalar(cmdText, CommandType.Text, pars);

       }

       /// <summary>

       /// 执行查询,得到一个读取对象

       /// </summary>

       /// <param name="cmdText">数据库语句</param>

       /// <param name="pars">参数</param>

       /// <returns>返回查询的数据</returns>

       public static SqlDataReader ExecuteReader(string cmdText, CommandType type, params SqlParameter[] pars)

       {

           //创建连接通道

           SqlConnection conn = new SqlConnection(connStr);

           //创建操作对象

           using (SqlCommand cmd = new SqlCommand(cmdText, conn))

           {

               //操作类型            

               cmd.CommandType = type;

               //添加参数

               if (pars.Length != 0)

               {

                   cmd.Parameters.AddRange(pars);

               }

               //连接数据库

               conn.Open();

               //返回对象,并且等待对象读取完毕时关闭数据库连接

               return cmd.ExecuteReader(CommandBehavior.CloseConnection);

           }

       }

       /// <summary>

       /// 执行查询,得到一个读取对象

       /// </summary>

       /// <param name="cmdText">数据库语句</param>

       /// <param name="pars">参数</param>

       /// <returns>返回查询的数据</returns>

       public static SqlDataReader ExecuteReader(string cmdText, params SqlParameter[] pars)

       {

           return ExecuteReader(cmdText, CommandType.Text, pars);

       }

       /// <summary>

       /// 得到一个存放查询数据的DataSet对象

       /// </summary>

       /// <param name="cmdText">数据库语句</param>

       /// <param name="type">操作类型</param>

       /// <param name="pars">参数</param>

       /// <returns>DataSet对象</returns>

       public static DataSet DXKSqlDataAdapter(string cmdText, CommandType type, params SqlParameter[] pars)

       {

           DataSet ds = new DataSet();

           //创建SqlDataAdapter

           using (SqlDataAdapter sda = new SqlDataAdapter(cmdText, connStr))

           {

               //得到操作类型

               sda.SelectCommand.CommandType = type;

               //添加参数

               if (pars.Length != 0)

               {

                   sda.SelectCommand.Parameters.AddRange(pars);

               }

               //开始执行操作

               sda.Fill(ds);

           }

           //返回结果

           return ds;

       }

       /// <summary>

       /// 得到一个存放查询数据的DataSet对象

       /// </summary>

       /// <param name="cmdText">数据库语句</param>

       /// <param name="type">操作类型</param>

       /// <param name="pars">参数</param>

       /// <returns>DataSet对象</returns>

       public static DataSet DXKSqlDataAdapter(string cmdText, params SqlParameter[] pars)

       {

           return DXKSqlDataAdapter(cmdText, CommandType.Text, pars);

       }

   }

}


作者: 许庭洲    时间: 2013-2-22 13:30
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2