首页 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
资讯 业界资讯 软件杂谈 编程开发 网站建设 网络观查 搜索引擎 移动应用 网站运营 网络地图
开发 移动开发 Web前端 架构设计 编程语言 互联网 数据库 系统运维 云计算 开发杂谈
[编程语言] SqlHelper的使用
SqlHelper的使用

在重构的时候,用到了一个很重要的数据库操作组件—SqlHelper。

--SqlHelper


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

-sqlHelper类


<span style="font-family:KaiTi_GB2312;font-size:18px;">'**********************************************
'作者:马世超 
'说明:创建SQLHelper
'创建日期:2014年12月30日
'版本号:1.0
'**********************************************

Imports System.Data.SqlClient
Imports System.Configuration '在管理器中添加引用
'类名:SQLHelper
'意义:用户对数据库操作帮助类
Public Class SQLHelper

    '获取配置文件中的连接字符串
    Private ReadOnly strSQLConnection As String = ConfigurationManager.AppSettings("strSqlConnection")
    '定义连接
    Dim cnnSQL As SqlConnection
    '定义cmd命令
    Dim cmdSQL As New SqlCommand

    ' <summary>
    ' depiction:该方法是sqlhelper的初始化
    ' </summary>
    Public Sub New()
        cnnSQL = New SqlConnection(strSQLConnection)
    End Sub</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">
    ' <summary>
    ' depiction:该方法是关闭数据库连接
    ' </summary>
    Private Sub closeSQLConnection()
        '判断数据库连接对象是否断开,如果没有断开就断开
        If cnnSQL.State <> ConnectionState.Closed Then
            cnnSQL.Close()
        End If
    End Sub</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">
    ' <summary>
    ' depiction:该方法是关闭数据库命令
    ' </summary>
    Private Sub closeSQLCommand()
        If Not IsNothing(cmdSQL) Then '如果cmd命令存在
            cmdSQL.Dispose()    '销毁
            cmdSQL = Nothing
        End If
    End Sub</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">
    ' <summary>
    ' depiction:执行增删改操作,(有参数)返回boolean类型,确认是否执行成功
    ' </summary>
    ' <param name="strSql">需要执行语句,一般是Sql语句,也有存储过程</param>
    ' <param name="cmdType">判断Sql语句的类型,一般是存储过程</param>
    ' <param name="sqlParams">参数数组,无法确认有多少参数</param>
    '<returns>返回布尔类型,成功为true,否则为false</returns>
    Public Function ExecuteNoQuery(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As Boolean
        '用传进的参数填充本类自己的cmd对象
        cmdSQL.Connection = cnnSQL
        cmdSQL.CommandText = cmdText    '设置查询的语句
        cmdSQL.CommandType = cmdType

        cmdSQL.Parameters.AddRange(sqlParams)  '将参数传入

        Try
            cnnSQL.Open()   '打开连接
            Return cmdSQL.ExecuteNonQuery() '执行增删该操作
        Catch ex As Exception
            Return False '如果出错,返回false
        Finally
            Call closeSQLConnection()
            Call closeSQLCommand()
        End Try
    End Function</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">
    ' <summary>
    ' depiction:执行增删改操作,(无参数)返回boolean类型,确认是否执行成功
    ' </summary>
    ' <param name="strSql">需要执行语句,一般是Sql语句,也有存储过程</param>
    ' <param name="cmdType">判断Sql语句的类型,一般不是存储过程</param>
    ' <param name="sqlParams">参数数组,无法确认有多少参数</param>
    '<returns>返回布尔类型,成功为true,否则为false</returns>
    Public Function ExecuteNoQuery(ByVal cmdText As String, ByVal cmdType As CommandType) As Boolean
        '用传进的参数填充本类自己的cmd对象
        cnnSQL.Open()
        cmdSQL.CommandType = cmdType
        cmdSQL.Connection = cnnSQL '将参数传入
        cmdSQL.CommandText = cmdText  '设置查询的语句


        Try
            cnnSQL.Open()   '打开连接
            Return cmdSQL.ExecuteNonQuery()    '执行增删改操作
        Catch ex As Exception
            Return False '如果出错,返回false
        Finally
            Call closeSQLConnection()
            Call closeSQLCommand()
        End Try
    End Function</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">
    ' <summary>
    ' depiction:执行查询操作,(有参数)返回datatable类型,确认是否执行成功
    ' </summary>
    ' <param name="strSql">需要执行语句,一般是Sql语句,也有存储过程</param>
    ' <param name="cmdType">判断Sql语句的类型,一般不是存储过程</param>
    ' <param name="sqlParams">参数数组,无法确认有多少参数</param>
    '<returns>返回布尔类型,成功为true,否则为false</returns>
    Public Function ExecuteSelect(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As DataTable
        Dim sqlAdapter As SqlDataAdapter
        Dim dtSQL As New DataTable
        Dim dsSQL As New DataSet

        '用传进的参数填充本类自己的cmd对象
        cmdSQL.CommandText = cmdText
        cmdSQL.CommandType = cmdType
        cmdSQL.Connection = cnnSQL
        cmdSQL.Parameters.AddRange(sqlParams)   '参数添加
        sqlAdapter = New SqlDataAdapter(cmdSQL) '实例化adapter

        Try
            sqlAdapter.Fill(dsSQL)  '用adapter将dataset填充
            dtSQL = dsSQL.Tables(0) 'datatable为dataSet的第一个表
            cmdSQL.Parameters.Clear()   '清楚参数
        Catch ex As Exception
            MsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")
        Finally
            Call closeSQLCommand() '销毁cmd
        End Try
        Return dtSQL
    End Function</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">
    ' <summary>
    ' depiction:执行查询操作,(无参数)返回datatable类型,确认是否执行成功
    ' </summary>
    ' <param name="strSql">需要执行语句,一般是Sql语句,也有存储过程</param>
    ' <param name="cmdType">判断Sql语句的类型,一般不是存储过程</param>
    '<returns>返回布尔类型,成功为true,否则为false</returns>
    Public Function ExecuteSelect(ByVal cmdText As String, ByVal cmdType As CommandType) As DataTable
        Dim sqlAdapter As SqlDataAdapter
        Dim dtSQL As New DataTable
        Dim dsSQL As New DataSet


        '用传进的参数填充本类自己的cmd对象
        cmdSQL.CommandText = cmdText
        cmdSQL.CommandType = cmdType
        cmdSQL.Connection = cnnSQL
        sqlAdapter = New SqlDataAdapter(cmdSQL) '实例化adapter
        Try
            sqlAdapter.Fill(dsSQL)  '用adapter将dataSet填充
            dtSQL = dsSQL.Tables(0)
        Catch ex As Exception
            MsgBox("查询失败", CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告")
        Finally
            Call closeSQLCommand()
        End Try
        Return dtSQL
    End Function
End Class
</span>


-SqlHelper使用的感受


在该开始使用SqlHelper的时候,由于对SqlHelper还不了解,所以感觉好高大上。其实在做VB版机房收费系统的时候,就用到了类似SqlHelper的东西。在对数据库增删改查的时候,都调用了一个过程,来方便数据库连接。这次又遇到了,刚开始不认识,后来经过无数次的出错,无数次的对SqlHelper进行回顾,再看起来,又感觉好简单。学习东西,实践是很重要的。
 


 此文从网络中自动搜索生成,不代表本网站赞成被搜索网站的内容或立场    查看原文
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 新闻资讯 小游戏 Chinese Culture 股票 三丰软件 开发 中国文化 网文精选 阅读网 看图 日历 万年历 2018年11日历
2018-11-15 22:14:24
 
  网站联系 软件世界网-www.sjsjw.com ©2014 蜀ICP备06016416号 三峰网旗下网站