当前位置:首页 > 日记 > 正文

数据库查询中的特殊字符问题

数据库查询中的特殊字符问题
在进行数据库的查询时,会经常遇到这样的情况:
  例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的字符,例如单引号,“|”号,双引号或者连字符“&”。
  例如他的名字是1"test,密码是A|&900
  这时当你执行以下的查询语句时,肯定会报错:
SQL = "SELECT * FROM SecurityLevel WHERE UID="" & UserID & """
SQL = SQL & " AND PWD="" & Password & """ 
  因为你的SQL将会是这样:
SELECT * FROM SecurityLevel WHERE UID="1"test" AND PWD="A|&900" 
  在SQL中,"|"为分割字段用的,显然会出错了。现在提供下面的几个函数 专门用来处理这些头疼的东西:
Function ReplaceStr (TextIn, ByVal SearchStr As String, _
ByVal Replacement As String, _
ByVal CompMode As Integer)



 Dim WorkText As String, Pointer As Integer
 If IsNull(TextIn) Then
  ReplaceStr = Null
 Else
  WorkText = TextIn
  Pointer = InStr(1, WorkText, SearchStr, CompMode)
  Do While Pointer > 0
   WorkText = Left(WorkText, Pointer - 1) & Replacement & _
   Mid(WorkText, Pointer + Len(SearchStr))
   Pointer = InStr(Pointer + Len(Replacement), WorkText, SearchStr, CompMode)
  Loop
  ReplaceStr = WorkText
 End If
End Function



Function SQLFixup(TextIn)
 SQLFixup = ReplaceStr(TextIn, """, """", 0)
End Function
Function JetSQLFixup(TextIn)
 Dim Temp
 Temp = ReplaceStr(TextIn, """, """", 0)
 JetSQLFixup = ReplaceStr(Temp, "|", "" & chr(124) & "", 0)
End Function



Function FindFirstFixup(TextIn)
 Dim Temp
 Temp = ReplaceStr(TextIn, """, "" & chr(39) & "", 0)
 FindFirstFixup = ReplaceStr(Temp, "|", "" & chr(124) & "", 0)
End Function 
  有了上面几个函数后,当你在执行一个sql前,请先使用
SQL = "SELECT * FROM SecurityLevel WHERE UID="" & SQLFixup(UserID) & """
SQL = SQL & " AND PWD="" & SQLFixup(Password) & """

相关文章

15谷歌CR-48笔记本

15谷歌CR-48笔记本

电脑软件,谷歌,CR,当每个人都还是想知道,如果你足够幸运得到一个谷歌Cr-48笔记本电脑,易趣网有100%个著名的专家为低于15美元的廉价倾销商品的价格(上面可能有点不清楚,对该模型:谷歌cr48)!为C. Jepsen的用户出售的ID是绿色版,每一页都可以使用3G和…

电子商务C2C市场上演悬念场龙虎斗

电子商务C2C市场上演悬念场龙虎斗

龙虎斗,崛起,市场,悬念,电脑软件,  -经济观察报记者 杨阳 杭州报道   六月的杭州既没有春天里桃红柳绿的诗情画意,也没有秋日西湖论剑时的清爽洒脱。在这个火烧火燎的日子里,声称从不烧钱的阿里巴巴、总说怕别人知道自己在干什么的马云,却…

WindowsXPSP2系统的优点和安全特性

WindowsXPSP2系统的优点和安全特性

系统,特性,优点,电脑软件,   Service Pack 2 安全技术   主要特征体现:网络保护,处理,浏览安全,内存保护,计算机维护  默认保护功能:功能更强的防火墙,自动更新技术    Service Pack 2 的目标   为各种需求的用户提供高度适用的:更灵活,更…

(十)给房间一个材料

(十)给房间一个材料

房间,材料,电脑软件,                                                                                                        …

张纪中主演的《西游记》的Wukong主

张纪中主演的《西游记》的Wukong主

西游记,纪中,电脑软件,Wukong,吴越,信息时报记者吴世然的主力阵容已经基本敲定在张纪中版的西游记(张纪中版六小龄童版香港版日本版),除了之前已经曝光了唐僧(聂元世)和沙僧(徐锦江)的候选人,孙武空将由武术演员吴越扮演,和猪是臧金胜(在电影赤壁张飞…

Windows7插入U盘没有播放播放窗口

Windows7插入U盘没有播放播放窗口

解决方案,窗口,电脑软件,Windows7插入U盘,自动播放,你可以运行gpedit.msc启动计算机配置管理模板应用{ } { } - Windows有元件自动播放策略{关闭自动播放设置为禁用} { }。 然后打开任何Windows7文件夹,点击左上角的{组织} {在文件夹和搜索选…

让你的九个PPT朋友付出一半的努力!

让你的九个PPT朋友付出一半的努力!

努力,朋友,电脑软件,PPT,制作幻灯片不是PowerPoint的一个软件,使用适当的工具可以使你加倍努力。这里有9个我收集的幻灯片资源,一些是网站,一些是软件,还有一些是书籍。我相信它会给你带来一些灵感。 1、SlideShare 这相当于在PPT world.ppt …

谷歌推出Chrome:因为现有浏览器很烂

谷歌推出Chrome:因为现有浏览器很烂

浏览器,推出,电脑软件,Chrome,据报道,在这次互联网大会会议,Ben Gudej,前者的Firefox的首席设计师,现在是谷歌浏览器浏览器用户界面组组长(Ben Goodger),他发表了他的Chrome浏览器查看。 Caldecott说,谷歌决定开发这个浏览器其实很简单,那就是当前…

教你在WindowsXP中添加只读属性到U

教你在WindowsXP中添加只读属性到U

只读属性,教你,电脑软件,WindowsXP,USB,  中有一个非常不错的新功能:为USB存储设备添加“只读”属性。具体实现方法如下:进入编辑器,找到HKEY_LOCAL_ MACHINESYSTEMCurrentControlSet ControlStorageDevicePolicies项,如果没有该项请新建一个…

微软下星期二将在Windows8上发布一

微软下星期二将在Windows8上发布一

下星期,补丁,关键,二将,电脑软件,北京时间4月7日,据国外媒体报道,下星期二,微软将发布的Windows 8和Windows RT系统的安全等级,并更新关键,所有这一切都是由IE10浏览器,他们必然受到影响。 据悉,IE6到IE10浏览器包含这个补丁修复漏洞,这意味着Windo…

如何禁止win7桌面背景--禁止调整方

如何禁止win7桌面背景--禁止调整方

调整,方式,桌面背景,电脑软件,如果你想使用的Windows7系统的所有用户的桌面背景图片,并禁止用户更改桌面背景图片,你可以通过以下方式实现。 根据{窗口} + {红}调出运行窗口,输入gpedit.msc打开组策略编辑器,然后展开用户配置- { } { } { } -…

iOS4.3的iTunes10.2的新版本已经发

iOS4.3的iTunes10.2的新版本已经发

下载,新版本,电脑软件, 今天凌晨苹果发布了iPad 2,并将于3月11日下周五首先在美国市场上市销售。而对应两代iPad、iPhone 4(GSM版)/3GS以及第三/四代iPod touch的iOS 4.3也将发布更新。   另,对应iOS 4.3的新版iTunes 10.2已经发布下载,欢迎下…