vb与数据库交互(ADO)

        ADO中共有7个对象,其中在每个例子中独立发挥作用的为Connention(连接),Recordset(记录集)和Command(命令)。对于这个三个对象可以通过数据库调用的顺序进行串联,首先是建立连接,之后通过命令得到数据,最后将数据放到一个集合中。这个逻辑依然可以像之前的例子一样在生活找到映射,比如,与数据库中数据传输(发送和接受)可以理解为两个人互相说话交流,首先要做的一定是打招呼(建立连接),其次,其中一人说话(发送消息),另一个要先经过大脑思考(进入记录集),然后在做出反应等等…

在代码中的表现:

一、首先是建立与数据库的连接,有两种表现形式:

1.直接按地址链接

    Dim objCn As New ADODB.Connection    '创建连接
    Dim objRs As New Recordset           '容纳一个来自数据库表的记录集
    
    '建立数据库连接
    objCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\实例1.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"

     objCn.Open          '打开链接

2.连接DSN(需要先在电脑中建立数据源,数据源中包含路径,所以我理解他们的本质是相同的)

    Set objCn = New Connection     '实例化连接对象
    objCn.Open "DSN=实例1-32"     '建立数据库连接
    
    Set objRs = New Recordset      '创建客户端的记录集

二、其次是进行操作(增删改查)

1.直接调用SQL语句

    strSQL = "SELECT 口令 FROM 系统用户 WHERE 用户名= '" & txtUserName & " '"
    Set objRs.ActiveConnection = objCn   '设置当前的 连接对象。
    objRs.Open (strSQL)     '打开记录集(sql命令

2.通过Command对象进行操作,数据的存储由Recordset来进行

    Dim objRs As New Recordset    '定义局部记录集合
    objCmd("用户名") = "%" & txtUser & "%"
    Set objRs = objCmd.Execute()      '查询 获得查询记录

    '为objecmd创建参数 
    Set objCmd = New Command
    Set objCmd.ActiveConnection = objCn
    
    With objCmd
        .CommandText = "SELECT*FROM 系统用户 WHERE 用户名 LIKE ?"
        .CommandType = adCmdText
    End With

    Dim Parm As New Parameter     '存储过程变量
    Set Parm = objCmd.CreateParameter("用户名", adVarChar, adParamInput, 10)  '追加内容
    objCmd.Parameters.Append Parm

注意:使用Command的操作,首先利用objCmd的CreateParameter()方法,返回一个 Parameter 对象,该对象包含指定的一部分属性写好。再根据使用情况,传入当时需求的数据,组成一个完整的查询语句

    Set Parm = objCmd.CreateParameter("用户名", adVarChar, adParamInput, 10) 
    
    objCmd("用户名") = "%" & txtUser & "%"

三、最后,关闭连接,释放资源

    '释放command和connection对象
    objCn.Close
    Set objCmd = Nothing
    Set objCn = Nothing

剩下的四个对象是依赖于上面三个对象发挥作用

Recordset(记录集Field(字段)

Connention(连接)Error(错误处理)

Command(命令) Parameter(参数)

Property属性对象则与普通对象的属性类似,只是以上3个独一对象的属性而已,同样的对象的同一个属性,均是相同的操作。

发布了40 篇原创文章 · 获赞 10 · 访问量 7116

猜你喜欢

转载自blog.csdn.net/xyzyhs/article/details/98852761