SqlHelper类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。在 SqlHelper类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。
其实说了一大堆我认为Sqlhelper其实就是封装一个方法,通过返回值来完成对数据库的更改和查询。下面说一下我在机房收费系统中用到的sqlhelper。因为我在机房收费系统中只有涉及到一个数据库(多个表),所以sqlhelper通过SQL参数传递即可连接数据库实现查询。
闲话少说,看下面的代码:
对于数据库的操作我们分为更改和查询即(增 insert、删 delete、改 update)和查 select
1 .更改 (返回布尔值)
'数据库连接
Public Function ConnectSQL() As SqlConnection
Dim str As String = "Data Source=192.168.24.76;Initial Catalog=Charge_System;uid=sa;Pwd=123456"
Dim conn As SqlConnection = New SqlConnection(str)
Return conn
End Function
'基本数据更改 除了查询
Public Function operate(ByVal sql As String) As Boolean
'数据库连接字符串
Dim conn As SqlConnection = ConnectSQL()
conn.Open()
Dim cmd As New SqlCommand(sql, conn)
cmd.ExecuteNonQuery()
cmd.Dispose()
conn.Close()
conn.Dispose()
Return True
End Function
2.数据查询
对于数据查询我们一般有两个目的:一是读数据,二是获取数据。我在机房收费系统中使用数据查询语句的时候封装了如下两个方法:
'基本数据查询 返回reader对象 select 语句
Public Function Query(ByVal sql As String) As SqlDataReader
Dim conn As SqlConnection = ConnectSQL()
conn.Open()
Dim cmd As New SqlCommand(sql, conn)
Dim reader As SqlDataReader
reader = cmd.ExecuteReader()
Return reader
End Function
'数据信息查询 返回 datatable对象
Public Function QueryTable(ByVal sql As String, ByVal str As String) As DataTable
Dim conn As SqlConnection = ConnectSQL()
conn.Open()
Dim myAdapter As New SqlDataAdapter(sql, conn)
Dim mySet As New DataSet
Dim myTable As New DataTable
myAdapter.Fill(mySet, str)
myTable = mySet.Tables(str)
conn.Close()
Return myTable
End Function
举一个简单的例子,比如机房收费系统中需要调用数据库表cardInfo中满足要求的信息,并且显示出来。我们先定义这样一个方法,来返回一个datatable类型
Public Function QueryCard(ByVal cardno As String) As DataTable
Dim sql As String = "填写要查询的条件"
'调用封装的方法
Dim myTable As DataTable
myTable = QueryTable(sql, "学生信息表")
End Function
在UI层中我们可以通过逐层返回datatable即方法中的myTable。数据显示我使用的是DataGridView 控件。直接使用该控件的属性赋值即可:DataGridView.datasource=mytable
这就是我眼中的sqlhelper ,有不到之处欢迎指正。