博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vb.net它SqlHelper制备及应用
阅读量:6760 次
发布时间:2019-06-26

本文共 5227 字,大约阅读时间需要 17 分钟。

    上次文章中说到。对于一个项目来说。SqlHelper是一个非常重要的类。

    在正在构造的机房收费系统中。有大量的操作数据库的操作。

现在。把反复的代码所有拿出来,就形成了SqlHelper类。这个SqlHelper运行參数化查询。

至于使用。仅仅须要提供对应的sql语句和參数。

就能够运行数据库的操作了。

    实现声明一下啊。

这个样例 我也不知道能不能用在机房收费系统上。刚学完设计模式。突发奇想在数据库的链接上,加上了一个单例模式。假设出现什么不显示的情况。请联系我。

 

    接下来看一下。sqlHelper是怎样写的。以及怎样在D层中使用的。

 

Imports System.Data.SqlClientImports System.ConfigurationPublic NotInheritable Class SqlHelper    '''     ''' 定义连接对象 和 cmd 命令    '''     ''' 
Dim ConnSql As SqlConnection '连接字符串 Dim cmdSql As New SqlCommand '创建链接,使用自己的链接方式(也算是一个单例模式吧) Public Sub New() ConnSql = SqlConnectionDAL.GetConn '使用自己的sqlconnection End Sub ''' ''' 带參数的查询 ''' ''' sql语句 ''' 查询类型 ''' 句子中的參数 '''
向数据库 提取 指定的数据 '''
Public Function Query(ByVal strText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As DataTable Dim sqlAdapater As SqlDataAdapter Dim dtSQL As New DataTable Dim dsSQL As New DataSet cmdSql.CommandText = strText cmdSql.CommandType = cmdType cmdSql.Connection = ConnSql cmdSql.Parameters.AddRange(sqlParams) sqlAdapater = New SqlDataAdapter(cmdSql) Try sqlAdapater.Fill(dsSQL) dtSQL = dsSQL.Tables(0) cmdSql.Parameters.Clear() Catch ex As Exception MsgBox(ex.Message, CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告") End Try Return dtSQL End Function ''' ''' 无參数的查询 ''' ''' sql语句 ''' 查询类型 '''
主要是向数据库中取数据,用来使用 '''
Public Function QueryNo(ByVal strText As String, ByVal cmdType As CommandType) As DataTable Dim sqlAdapater As SqlDataAdapter Dim dtSQL As New DataTable Dim dsSQL As New DataSet cmdSql.CommandText = strText cmdSql.CommandType = cmdType cmdSql.Connection = ConnSql '加入參数 sqlAdapater = New SqlDataAdapter(cmdSql) Try sqlAdapater.Fill(dsSQL) dtSQL = dsSQL.Tables(0) cmdSql.Parameters.Clear() Catch ex As Exception MsgBox(ex.Message, CType(vbOKOnly + MsgBoxStyle.Exclamation, MsgBoxStyle), "警告") End Try Return dtSQL End Function ''' ''' 带參数的增删改 ''' ''' sql语句 ''' 查询类型:有參数的增删改 ''' 參数 '''
运行成功返回true '''
Public Function UpdDelAlter(ByVal strText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As Boolean cmdSql.CommandText = strText cmdSql.CommandType = cmdType cmdSql.Connection = ConnSql '加入參数 cmdSql.Parameters.AddRange(sqlParams) Dim flag As Boolean Try flag = cmdSql.ExecuteNonQuery cmdSql.Parameters.Clear() Return flag Catch ex As Exception Return False End Try End FunctionEnd Class

    在上面的样例中,还缺少那个 单例模式。假设感觉不合适的,请自行编写一个数据库的连接方式就能够了。

Imports System.Data.SqlClient''' ''' 连接字符串 数据库  使用单例模式''' ''' 
赵崇 14-5-17Public Class SqlConnectionDAL ''' ''' 定义一个连线字符串 ''' '''
赵崇 14-5-17 Private Shared ReadOnly strLink As String = System.Configuration.ConfigurationManager.AppSettings("ConnStr") Public Shared conn As SqlConnection = Nothing '创建一个静态 仅仅读进程 辅助对象 Public Shared ReadOnly syncRoot As New Object ''' ''' 私有构造函数,外部代码不能使用 ''' '''
Private Sub New() End Sub Public Shared ReadOnly Property GetConn() As SqlConnection Get If conn Is Nothing Then SyncLock syncRoot '锁,确保仅仅有一个链接可使用 If conn Is Nothing Then conn = New SqlConnection(strLink) conn.Open() End If End SyncLock ElseIf conn.State = ConnectionState.Closed Then conn.Open() ElseIf conn.State = ConnectionState.Broken Then conn.Close() conn.Open() End If Return conn End Get End PropertyEnd Class

     对于以上,项目的SqlHelper就编写完毕了。

仅仅须要使用就能够了。

至于使用。在D层的实现,这里仅仅写一个样例。

      咱们就写一个看看吧。

查询表:(不须要參数。如需使用 直接替换sql语句)

'''     ''' 获取用户表中的用户级别信息    '''     ''' 
'''
Function GetTable() As DataTable Implements IDAL.IUser.GetUserTable Dim strSQL As String = "Select distinct Level as [用户级别] from User_Info Des" Dim helper As New SqlHelper Dim dtUser = helper.QueryNo(strSQL, CommandType.Text) Return dtUser End Function

 

删除用户表:(更新 改动 等等 仅仅须要替换对应的SQl语句  和參数  就可以实现)

'''     ''' 删除用户    '''     ''' 用户信息    ''' 
返回true表示删除成功。返回false表示删除失败 '''
赵崇 14-5-21 Public Function DeleteUser(ByVal user As UserEntity) As Boolean Implements IDAL.IUser.DeleteUser Dim strSQL As String strSQL = "Delete from User_Info where UserID=@UserID" Dim helper As New SqlHelper Dim sqlparameter As SqlParameter() = {New SqlParameter("@UserID", user.UserID)} Dim flag As Boolean flag = helper.UpdDelAlter(strSQL, CommandType.Text, sqlparameter) Return flag End Function

    通过上面的样例,你会发现,在于数据库进行操作的时候。只提供sql语句 加  參数。就能够达到自己的目的。

sqlHelper类,一次编写,到处使用。大量的节省代码。

    对于使用三层架构的程序。编写代码的时候,脑子里仅仅有 对象及其方法。在U层写代码的时候,不须要考虑B层的实现过程。仅仅知道B层的返回结果就能够了。

 

版权声明:本文博客原创文章。博客,未经同意,不得转载。

你可能感兴趣的文章
HDU 5212 Code
查看>>
yarn使用
查看>>
Hadoop之 MapReducer工作过程
查看>>
CPU监控
查看>>
MongoDB中的explain和hint提的使用
查看>>
redis集群部署及踩过的坑
查看>>
为什么许多人宁愿死,也不愿思考
查看>>
从内核源代码配置文件预測泛泰新品(A920 ?)
查看>>
Disconf 学习系列之Disconf是什么?
查看>>
[UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)...
查看>>
【翻译】Apache Shiro10分钟教程
查看>>
Ooui.Wasm:浏览器中的.NET
查看>>
Laravel 数据库实例教程 —— 使用DB门面操作数据库
查看>>
用redis的scan命令代替keys命令,以及在spring-data-redis中遇到的问题
查看>>
jquery-chosen设置默认值
查看>>
2012-2013-1 (实变函数56, 高等数学84)
查看>>
目标检测算法的进展
查看>>
CentOS 7.2:Failed to start IPv4 firewall with iptables
查看>>
Kettle系列: 马进举开源的Kettle通用插件 KettleEasyExpand
查看>>
3-(基础入门篇)稍微了解一下(需要知道的关于Lua的一些基本的知识)
查看>>