个人重构机房收费系统SqlHelper的使用

    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

        通过上面1 和 2 对数据库连接和操作的封装,这样在以后调用的过程中就可以减少代码的书写,而且能够进最可能的避免因为个人原因而造成的错误。

        举一个简单的例子,比如机房收费系统中需要调用数据库表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 ,有不到之处欢迎指正。

你可能感兴趣的:(个人重构机房收费系统SqlHelper的使用)