实例五:数据查询
原例:用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