sqlhelper类详解

ContractedBlock.gif ExpandedBlockStart.gif Code
using System; 
using System.Data; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Data.SqlClient; //导入访问SqlServer数据库的名称空间 

/// <summary> 
/// SqlHelper 的摘要说明 
/// </summary> 
public class SqlHelper 

    
private static readonly string strConn = ConfigurationManager.ConnectionStrings["TangCompanyConn"].ConnectionString; //从配置文件获得与数据库的连接字符串 
    private static readonly string strName = ConfigurationManager.AppSettings["userName"].ToString(); //从配置文件中获得用户名 
    private static readonly string strPass = ConfigurationManager.AppSettings["userPass"].ToString(); //从配置文件中获得密码 
public SqlHelper() 

// 
// TODO: 在此处添加构造函数逻辑 
// 

    
public static SqlDataReader ExcuteRead(string nText, CommandType nType, SqlParameter[] paras) { 

        SqlConnection conn 
= new SqlConnection(strConn); //获得一个与数据库之间建立连接的连接对象 
        SqlCommand cmd = new SqlCommand(); //创建一个执行SQL语句的命令对象 
        try 
        { 
            PrepareCommand(conn, cmd, 
null, nType, nText, paras); //调用后面的方法,后面具体说 
            SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); //通过SQLCommand对象创建一个SqlDataReader对象 
            cmd.Parameters.Clear(); //清空所有参数 
            return dr; //返回SqlDataReader对象 
        
        } 
        
catch(SqlException ex){ 

            
throw new Exception(ex.Message, ex); 
        
        } 
    
    } 
    
public static int ExcuteNonQurey(string nText, CommandType nType, SqlParameter[] paras) { 

        SqlCommand cmd 
= new SqlCommand(); //创建一个执行SQL语句的命令对象 
        
//此处采用了using写法,自动释放连接对象 
        using (SqlConnection conn = new SqlConnection(strConn)) //括号内创建一个与数据库之间的连接对象 
        { 

            PrepareCommand(conn, cmd, 
null, nType, nText, paras); //调用后面的方法,后面详细说明 
            int rows = cmd.ExecuteNonQuery(); //执行T-SQL,并将所获得的返回行数赋给rows 
            cmd.Parameters.Clear(); //清空所有参数 
            return rows; //返回执行T-SQL所影响的行数 
        
        } 
    
    } 
    
public static object ExcuteSclare(string nText, CommandType nType, SqlParameter[] paras) { 

        SqlCommand cmd 
= new SqlCommand(); //创建一个执行SQL语句的命令对象 
        
//此处采用了using写法,自动释放连接对象 
        using (SqlConnection conn = new SqlConnection(strConn))//括号内创建一个与数据库之间的连接对象 
        { 

            PrepareCommand(conn, cmd, 
null, nType, nText, paras); //调用后面的方法,后面详细说明 
            object obj = cmd.ExecuteScalar(); //返回查询中的第一行第一列,忽略其它。 
            cmd.Parameters.Clear(); //清空所有参数 
            return obj; //返回所查询到的对象 
        } 
    
    } 
    
public static DataSet ExcuteReadApdater(string nText, CommandType nType, SqlParameter[] paras) { 

        SqlConnection con 
= new SqlConnection(strConn); //创建一个与数据库建立连接的对象 
        SqlCommand cmd = new SqlCommand(); //创建一个执行SQL语句的命令对象 
        DataSet ds = new DataSet(); //创建一个数据集对象 
        try 
        { 
            PrepareCommand(con, cmd, 
null, nType, nText, paras); //调用后面的方法,后面详细说明 
            SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd); //创建一个数据适配器对象 
            sqlAdapter.Fill(ds); //填充数据集 
            cmd.Parameters.Clear(); //清空所有参数 
            return ds; //返回数据集对象 

        } 
        
catch (SqlException ex) { 

            
throw new Exception(ex.Message, ex); 
        
        }    
    } 
    
public static void PrepareCommand(SqlConnection con, SqlCommand cmd, SqlTransaction trans, CommandType nType, string nText, SqlParameter[] paras) { 

        
if (con.State != ConnectionState.Open) //判断与数据库之间的连接状态 
            con.Open(); //打开与数据库之间的连接 
        cmd.Connection = con; //为sqlcommand对象指定连接对象 
        cmd.CommandText = nText; //指定T-sql语句 
        if (trans != null) { //判断事务对象是否为null 

            cmd.Transaction 
= trans; //为sqlcommand对象指定事务对象 
        } 
        cmd.CommandType 
= nType; //执行sqlcommand执行语句的类型 
        if (paras != null) { //判断是否有参数 

            
foreach (SqlParameter para in paras)//循环添加参数 
            { 

                cmd.Parameters.Add(para);            
            }        
        
        } 
    } 

 

转载于:https://www.cnblogs.com/dudu837/archive/2009/05/13/1455818.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值