• 红皮书再总结——实例五


    实例5 数据查询

    (一)制作特点:

    第一、使用ADO Command对象创建参数查询以查询数据库

    第二、使用MSFlexGrid控件以表格的方式显示查询结果

    (二)设计分析:

    方法一、使用查询参数构造SQL Select语句,然后使用ADO Command对象或RecordSet对象执行查询语句。

    方法二、使用ADO Command 对象创建参数查询√

    方法三、先执行Select语句获取数据库数据,将其存放到RecordSet对象中,然后执行Recordset对象的Find方法查找符合条件的记录,或者设置Recordset对象的Filter属性筛选符合条件的记录。

    (三)技术要领:

    1.MSFlexGrid控件中数据的添加和清除

    添加:object.AddItem(string,index)

    清除:MSFlexGrid.Clear

    删除指定行:MSFlexGrid.RemoveItem(2)

    2.使用Command对象创建参数查询

    ①创建Command对象:(?作为Select语句中的查询参数)

    objCmd.CommandText="SELECT * FROM 系统用户 WHERE 用户名 LIKE ?"
    

    ②使用Command对象:

    Dim Parm As New Parameter
    
    Set Parm=objCmd.CreateParameter("用户名",adVarChar,adParamInput,10)
    
    objCmd.Parameters.Append Parm
    

    ③设置查询参数的值

    objCmd("用户名")="admin"
    

    ④执行Command对象的Execute方法完成查询

    (四)操作过程:

    (1)创建数据库

    实例5真是错误百出,这5个例子我用的都是一个数据库,后来发现书中有三个字段“用户名”、“口令”和“身份”,但由于我用的实例1的数据库,只有两个字段。所以重新创建一个数据库,添加三个字段。

    (2)设计窗体

    ①工程——部件——Microsoft FlexGrid Control 6.0

    ②三个标签框+两个文本框+一个命令按钮+MSFlexGrid控件

    (3)编写代码

    Private Sub cmdQuery_Click()
        Dim objRs As New Recordset                   '定义局部记录集对象
            objCmd("用户名") = "%" & txtUser & "%"    '获得查询参数
        Set objRs = objCmd.Execute()                 '执行查询,获得查询结果记录集
    	    MSFlexGrid1.Cols = objRs.Fields.Count     '显示列名,cols:列rows:行
    	    For i = 0 To objRs.Fields.Count - 1
                MSFlexGrid1.TextMatrix(0, i) = objRs.Fields(i).Name
            Next
        n = 0
        If txtUser.Text = "" Then
            MSFlexGrid1.Clear
            MSFlexGrid1.Rows = 1
            Else
        While Not objRs.EOF
            MSFlexGrid1.Clear                                         
            For i = 0 To objRs.Fields.Count - 1
                MSFlexGrid1.TextMatrix(0, i) = objRs.Fields(i).Name
            Next
            MSFlexGrid1.Rows = 1
            MSFlexGrid1.AddItem (objRs!用户名 & vbTab & objRs!口令) 'vbTab:制表符。
            n = n + 1
            objRs.MoveNext
        Wend                                    '显示获得的记录条数                                                               
            Label4 = "共获得" & n & "条查询结果"
        End If
    End Sub
    
    Private Sub Form_Load()
        MSFlexGrid1.Rows = 1                     '新增加
        Set objCn = New Connection               '实例化Connection对象objCn
        strCn = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security info=False;" & "Data Source=" & "C:UsersTXGDesktop实例5.mdb"
        objCn.ConnectionString = strCn          '创建数据库连接
        objCn.Open                    '创建执行参数查询的Connection对象objCmd
        Set objCmd = New Command
        Set objCmd.ActiveConnection = objCn
        With objCmd
            .CommandText = "SELECT*FROM 系统用户 WHERE 用户名 LIKE ?"
            .CommandType = adCmdText
    
        End With                              '为Command对象objCmd创建参数
        Dim parm As New Parameter
        Set parm = objCmd.CreateParameter("用户名", adVarChar, adParamInput, 10)
        objCmd.Parameters.Append parm
        Label4 = ""                           '清除标签4
    End Sub
    

    (五)连接数据库方式:

    第一种,使用ADO connection对象,通过编写代码访问数据库。

  • 相关阅读:
    vuejs 组件通讯
    导出pdf
    css 鼠标选中内容背景色
    console.log() 字体颜色
    使用cross-env解决跨平台设置NODE_ENV的问题
    Visual Studio动态生成版权信息(VS2015,VS2010,VS2008)
    程序员常用工具汇总
    存储过程分页
    oracle全表扫描
    CDM常用命令
  • 原文地址:https://www.cnblogs.com/txge/p/13973660.html
Copyright © 2020-2023  润新知