实例与举一反三之比较(五)

本文介绍如何使用 ADOCommand 和 ADORecordSet 对象执行参数化查询,并通过 DataGrid 控件展示查询结果。同时展示了三种不同的查询实现方式,包括直接构造 SQL 语句、设置 RecordSet 的 Filter 属性等。

实例五:数据查询

原例:用ADO Command对象创建参数查询,用MSFlexGrid显示数据。

举一反三(1):

不同点:使用查询参数构造SQL Sever语句,(WHERE条件中有参数,故Command对象不用设置参数)使用ADO Command对象执行查询语句。

原例:

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

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


objCmd("用户名") = "%" & txtUser & "%" '获得查询参数
objCmd("身份") = "%" & txtStatus & "%"
Set objRs = objCmd.Execute() '执行查询,获得查询结果记录集

本例:

objCmd .CommandText = "SELECT * FROM 系统用户 WHERE 用户名 LIKE '%" & Trim(txtUser) & "%'" & "AND 身份 LIKE '%" & Trim(txtStatus) & "%'"


Set objRs = objCmd.Execute() '执行查询,获得查询结果记录集


举一反三(2):

不同点:使用查询参数构造SQL Sever语句,(WHERE条件中有参数,故RecordSet对象不用设置参数)使用ADO RecordSet对象执行查询语句。用DataGrid控件显示数据。

本例:

strSQL = "SELECT * FROM 系统用户 WHERE 用户名 LIKE '%" & Trim(txtUser) & "%'" & "AND 身份 LIKE '%" & Trim(txtStatus) & "%'"
Set objRs.ActiveConnection = objCn
objRs.CursorLocation = adUseClient
objRs.CursorType = adOpenStatic
objRs.Open strSQL
Set DataGrid1.DataSource = objRs


举一反三(3):

不同点:先执行Select语句获取数据库数据,将其存放到RecordSet对象中,然后设置RecordSet对象的Filter属性筛选符合条件的记录。用DataGrid控件显示数据。

本例:

strSQL = "SELECT * FROM 系统用户 "
Set objRs.ActiveConnection = objCn
objRs.CursorLocation = adUseClient
objRs.CursorType = adOpenStatic
objRs.Open strSQL

If Trim(txtUser) = "" Then
strFilter = ""
Else
strFilter = "用户名 LIKE '" & Trim(txtUser) & "%' "
End If
If Trim(txtStatus) <> "" Then
If strFilter <> "" Then
strFilter = strFilter & "AND 身份 LIKE '" & Trim(txtStatus) & "%'"
Else
strFilter = "身份 LIKE '" & Trim(txtStatus) & "%'"
End If
End If
objRs.Filter = strFilter
Set DataGrid1.DataSource = objRs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值