中秋话团圆作文500字:模糊查询问题?(like在ado中的使用)

来源:百度文库 编辑:高校问答 时间:2024/05/02 07:35:55
请看下面代码,用like进行匹配查询时,如果指定精确值,正常,而指定像a#或孙*等值时会出错,
其中数据库名db5,表renshi,字段id(自动编号),number(数字),name(文本),

正常代码;
Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=G:\db5.mdb;"

Set adoPrimaryRS = New Recordset
strcn = "SELECT * FROM renshi WHERE id Like 'ab';"
adoPrimaryRS.Open strcn, db, adOpenStatic, adLockOptimistic

MsgBox adoPrimaryRS.Fields("name")

出错代码;即无记录
Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=G:\db5.mdb;"

Set adoPrimaryRS = New Recordset
strcn = "SELECT * FROM renshi WHERE id Like '1#';"
adoPrimaryRS.Open strcn, db, adOpenStatic, adLockOptimistic
MsgBox adoPrimaryRS.Fields("name")
对不起,上面出错代码第六行输入有错误,应写成:
strcn = "SELECT * FROM renshi WHERE id Like '一*';"

在SQL查询中,如果用like匹配,"?"可代表任一字符,"*"可以代表任意数量的字符(有些资料说是"%"),如输入"一*",可以返回开头是一的任意字符串,如"一心一意","一干二净"等.
我的问题是;我按上面输入,本该有返回记录,可返回记录为0,不知道是ADO有某些参数不正确还是其它方面的问题,谢谢指教!

#似乎属于特殊字符吧

对用户输入数据进行过滤
把特殊字符过滤掉,这样也对你的站点的安全性有很大保护