以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  【友情提醒】一定要注意查询条件中的单引号  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3764)

--  作者:reachtone
--  发布时间:2009/7/31 16:50:00
--  【友情提醒】一定要注意查询条件中的单引号
    foxtable帮助中的“自定义录入窗口”是个非常经典的应用。我也是拿来主义,把里面的代码粘来就用。
    但今天下午给一个朋友测试时,发现一个很严重的错误:只要在查询条件中输入半角的单引号,查询就会出错。经仔细检查,原来老六提供的代码并不完美,当查询条件中出现单引号时,就会造成SQl语句错误。
    “完美的”代码应该是:
 

Dim txt As String = e.Form.Controls("TextBox1").Value
Dim
dst As WinForm.DataList = e.Form.Controls("DataList1")
If
txt = "" Then
    dst.RowFilter = ""

Else

    txt = "\'*" & txt.Replace("\'","\'\'") & "*\'"    \'如果用户输入的条件中带单引号,自动将其替换为两个单引号
    dst.RowFilter = "客户ID Like " & txt & " Or 公司名称 Like " & txt & " Or 地址 Like " & txt & " Or 联系人 Like " & txt
End
If

    特别提醒各位狐友注意,包括各种SQL语句中,只要查询条件中存在单引号,就一定要2个单引号代替。


--  作者:mr725
--  发布时间:2009/7/31 17:26:00
--  
先收藏~ 
--  作者:yangming
--  发布时间:2009/8/1 11:32:00
--  
先谢谢
--  作者:狐狸爸爸
--  发布时间:2009/8/2 12:45:00
--  
我顶一下