您的位置:首页 > 数据库

机房收费系统数据库小助手——Sqlhelper

2015-04-30 21:10 281 查看
【背景】    

   在开始机房收费系统的学习之前,我们学习了软工,设计模式和三层,软工告诉我们编程设计要注重代码的灵活性,可复用性、减少代码复用量,而设计模式和三层的则让我们学习了怎样达到代码的灵活性、可复用性和减少代码复用性的方法。在机房的时候,我们总会相到使用这些方法来为我们的代码解耦。

 【sqlhelper】

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

Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration '添加必要引用
Public Class SqlHelper
Private Shared ReadOnly strConnection As String = ConfigurationManager.AppSettings("DB")
'定义全局变量,设置链接
Shared conn As SqlConnection = New SqlConnection(strConnection)
'定义全局cmd命令
Shared cmd As New SqlCommand

' 执行非查询操作(增删改)有参数,
' <param name="cmdText">执行增删改查SQL语句或者存储过程</param>
' <param name="cmdType">命令类型文本或者是存储过程</param>
' <param name="paras">参数数组,无法确认有多少参数</param>
Public Shared Function ExecuteNoquery(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As Integer
Dim result As Integer '定义变量用来存放执行的结果
cmd.Parameters.AddRange(paras) '将参数传入

'给cmd赋值
cmd.CommandText = cmdText '设置查询语句
cmd.CommandType = cmdType '设置一个值,解释cmdtext
cmd.Connection = conn '设置链接,全局变量
Try
conn.Open() '打开链接
result = cmd.ExecuteNonQuery() '执行增删改操作
cmd.Parameters.Clear() '清除参数
Catch ex As Exception
MsgBox(ex.Message, , "数据库操作")
Finally
'关闭数据链接
Call CloseConn(conn)
Call closeCmd(cmd)

End Try
Return result '返回数据集的第一个表
End Function

Public Shared Function ExeAddDelUpdateNo(ByVal cmdText As String, ByVal cmdType As CommandType) As Integer
cmd.CommandText = cmdText
cmd.CommandType = cmdType

cmd.Connection = conn
Dim result As Integer
Try
conn.Open()
result = cmd.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message, , "数据库操作")
Finally
Call CloseConn(conn)
Call CloseCmd(cmd)
End Try
Return result
End Function

Public Shared Function ExecSlect(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As DataTable
Dim sqlAdater As SqlDataAdapter
Dim dt As New DataTable
Dim ds As New DataSet

cmd.CommandText = cmdText
cmd.CommandType = cmdType
cmd.Connection = conn
cmd.Parameters.AddRange(paras)
sqlAdater = New SqlDataAdapter(cmd)
Try
sqlAdater.Fill(ds) '用adapter将dataset填充
dt = ds.Tables(0) 'datatable为dataset的第一个表
cmd.Parameters.Clear() '清除参数
Catch ex As Exception
MsgBox(ex.Message, , "数据库操作")
Finally
Call CloseCmd(cmd)
End Try
Return dt
End Function
Public Shared Function ExecSelectNo(ByVal cmdText As String, ByVal cmdType As CommandType) As DataTable
Dim sqlAdapter As SqlDataAdapter
Dim ds As New DataSet

cmd.CommandText = cmdText
cmd.CommandType = cmdType

cmd.Connection = conn
sqlAdapter = New SqlDataAdapter(cmd)

Try
sqlAdapter.Fill(ds)
Return ds.Tables(0)
Catch ex As Exception
Return Nothing
Finally
Call CloseCmd(cmd)
End Try

End Function
Public Shared Sub CloseConn(ByVal conn As SqlConnection)
If (conn.State <> ConnectionState.Closed) Then '如果没有关闭
conn.Close() '关闭连接
conn = Nothing '不指向原对象
End If

End Sub
''' <summary>
''' 销毁命令
''' </summary>
''' <param name="cmd">需要关闭的命令</param>
''' <remarks></remarks>
Public Shared Sub CloseCmd(ByVal cmd As SqlCommand)

If Not IsNothing(cmd) Then '如果cmd命令存在
cmd.Dispose() '销毁
cmd = Nothing
End If
End Sub
End Class
【小结】

    可见,在我们敲机房的时候,sqlhelper的运用,让我们减少了很多代码的重复,也使得程序与数据库之间有了一个接口,通过sqlhelper,可以很方便的实现程序对数据库得操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: