机房个人版——sqlhelp那点事

前言:

    在重构机房的时候发现了selectcommand未初始化,作为一名菜鸟,我真的不知道该怎么办了,因为在自己的代码中明明没有出现selectcommand,为什么会报出这样的错误,后来通过了解终于发现原来是我在代码中的sqlcommand其实是selectcommand命令,而我没有进行链接。其实这一切都是源于自己对于sqlhelp的不理解,所以花时间进行一系列的梳理。

内容:

sqlhelp代码如下: 

Imports System.Configuration
Imports System.Data 
'**************************    
'文 件 名:sqlhelp  
'命名空间:sqlhelp   
'内    容: 数据库信息    
'功    能:提供数据库信息,抽调其中的表 
'文件关系:    
'作    者:常银玲        
'生成日期:2016.2.2  
'版 本 号:V1.0.0.0    
'修改日志:    
'版权说明:    
'***************************   
Public Class sqlhelp
    
    Dim strconnection As String = "server=CYL;Database=charge_sys;User ID =sa; Password=1;"  '数据库的信息
    Dim conn As SqlConnection = New SqlConnection(strconnection)            '创建一个数据库
    Dim cmd As New SqlCommand                                            '创建了一个命令

#Region "查询"
    Public Function execdatatable(ByVal cmdtext As String, ByVal cmdtype As CommandType, ByVal paras As SqlParameter())
        Dim sqladapter As new SqlDataAdapter
        Dim dt As New DataTable
        Dim ds As New DataSet

        cmd.Connection = conn                    '关联connection对象
        cmd.CommandText = cmdtext                '将cmdtext="SELECT * FROM User_Info where userID=@userID and PWD=@password"赋值cmd
        cmd.CommandType = cmdtype                'cmd类型是sqlcommand类型
        cmd.Parameters.AddRange(paras)           '参数添加,添加参数userid和password。
        sqladapter = New SqlDataAdapter(cmd)     '实例化adapter

        Try
            sqladapter.Fill(ds)      '通过sql适配器填充数据集
            dt = ds.Tables(0)        '查询数据集中的第一个表赋给dt,即我们要查找的表
            cmd.Parameters.Clear()   '通过成功之后将参数清除!

        Catch ex As Exception
            MsgBox("登陆失败")
        Finally
            Call closecmd(cmd)
        End Try
        Return dt
    End Function
#End Region</span><span style="font-size:18px;"></span>
</span>

    在之前并不理解DataAdapter的意义,其实并不懂dataAdapter存在的意义,后来通过一些资料的查询终于对于这一个概念有了一点思路。其实我们可以按照以前我们vb连接数据库时的思路去理解一下dataAdapter,vb连接数据库的时候是这样的(如下图):

   

而vs连接数据库的时候却是这样:

  机房个人版——sqlhelp那点事_第1张图片

   我的理解基本上这样的,其实dataAdapter是基于.NET平台下给予的一个适配器,它的作用其实类似于ODBC,就是可以表示一组 SQL 命令和一个数据库连接,它们用于填充 DataSet和更新数据源。以机房重构为例说一下它的属性和方法:

 

    DataSet是数据集的意思,不依赖与数据库的独立性的数据集合,它是从数据源中检索到的数据在内存中的缓存,它是由一系列的单表datatable组成的。然后通过这个我们就可以基本上理解这些了。

 总结:

    其实sqlhelp总结起来就是DataAdapter提供了sqlcommand的属性,将数据库的相关信息链接给sqlcommand,然后实例化dataAdapter,再利用他的方法fill()填充数据集dataset,然后从数据集中指定相关的表,返回给DAL层,然后层层进行传递。其实sqlhelp存在的意思是非常明显的,它将所有数据库中的数据表都存储在了这里,UI层需要显示的数据表,只需要交给DAL层指定查询语句,然后再通过sqlhelp中的dataset进行查询就可以了!

  


你可能感兴趣的:(机房个人版——sqlhelp那点事)