第四周学习笔记

设计实现SqlHelper

1、知识点描述

SqlHelper是一个基于.NET Framework的数据库操作组件。组件中包含数据库操作方法,SqlHelper有很多版本,主要以微软一开始发布的SqlHelper类,后面包含进了Enterprise Library开源包中了。还有一个主要版本是dbhelper.org开源的sqlhelper组件,优点是简洁,高性能,不仅仅支持sqlserver,同时支持sqlserver、oracle、access、Mysql数据库,也是一个开源项目,提供免费下载。

SqlHelper用于简化你重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper 封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,很方便。

SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。

2、思维导图

3、示例代码

using System.Configuration;                                                                                 
using System.Data;                                                                                         
using System.Data.SqlClient;                                                                               

namespace Ex33_ObjectOriented_SqlHelper
{
    
    public class SqlHelper
    {
        
       
        private static SqlCommand GetCommand(string commandText, bool isStoredProcedure, SqlParameter[] sqlParameters)
        {
            SqlConnection sqlConnection = new SqlConnection();                                              
            sqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings["Sql"].ToString();      
            SqlCommand sqlCommand = sqlConnection.CreateCommand();                                          
            sqlCommand.CommandText = commandText;                                                           
            if (isStoredProcedure)                                                                          
            {
                sqlCommand.CommandType = CommandType.StoredProcedure;                                  
            }
            if (sqlParameters != null)                                                                     
            {
                sqlCommand.Parameters.AddRange(sqlParameters);                                             
            }
            return sqlCommand;                                                                              
        }

      
        public static object Scalar(string commandText,bool isStoredProcedure, SqlParameter[] sqlParameters)
        {
            object result = null;                                                                           
            using (SqlCommand sqlCommand = GetCommand(commandText, isStoredProcedure, sqlParameters))       
            {
                sqlCommand.Connection.Open();                                                             
                result = sqlCommand.ExecuteScalar();                                                       
                sqlCommand.Connection.Close();                                                           
            }
            return result;                                                                                
        }

       
        public static int NonQuery(string commandText, bool isStoredProcedure, SqlParameter[] sqlParameters)
        {
            int rowAffected = 0;                                                                            
            using (SqlCommand sqlCommand = GetCommand(commandText, isStoredProcedure, sqlParameters))       
            {
                sqlCommand.Connection.Open();                                                               
                rowAffected = sqlCommand.ExecuteNonQuery();                                                
                sqlCommand.Connection.Close();                                                           
            }
            return rowAffected;                                                                         
        }
    }
}


四、效果截图

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值