linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > ASP >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·由HTTP 500 Internal server e
·会员系统“找回密码”的制作方
·ASP实现数字和字母组合并生成图
·简单的asp验证码程序示例
·用ASP制作强大的搜索引擎
·如何让图片自动缩放以适合界面
·如何用foreach遍历页面上所有的
·如何实现站点的RSS输出
·无组件实现文件上传/下载
·ASP如何获取真实IP地址
·asp中如何使用 HTML 表格
·采用XMLHTTP编写一个天气预报的
·80004005错误及其解决方法
·asp中如何调试 ASP 脚本
·asp+ajax打造无刷新新闻评论系
最新文章
·ASP教程:8、ASP内建对象Respo
·ASP教程:7、ASP内建对象Reque
·ASP教程:6、ASP脚本循环语句
·ASP教程:5、ASP脚本变量、函数
·ASP教程:4、ASP脚本基础
·ASP教程:3、ASP基础
·ASP教程:2、ASP简介
·ASP教程:1、Are you ready?
·ASP中使用SQL语句教程
·ASP进度条
·由HTTP 500 Internal server e
·Asp无组件生成缩略图
·ASP 系列函数大全(4)
·ASP 系列函数大全(3)
·ASP 系列函数大全(2)
Google
 
解决ASP执行DB查询中的特殊字符问题
[ 作者:  加入时间:2007-11-28 13:59:54  来自:Linux联盟收集整理 ]
在进行数据库的查询时,会经常遇到这样的情况: CmRLinux联盟
   CmRLinux联盟
   CmRLinux联盟
   CmRLinux联盟
    例如想在一个用户数据库中查询他的用户名和他的密码,但恰好该用户使用的名字和密码中有特殊的字符,例如单引号,“|”号,双引号或者连字符“&”。 CmRLinux联盟
   CmRLinux联盟
    例如他的名字是1'test,密码是A|&900,这时当你执行以下的查询语句时,肯定会报错: CmRLinux联盟
    SQL = "SELECT * FROM SecurityLevel WHERE UID='" & UserID & "'" CmRLinux联盟
    SQL = SQL & " AND PWD='" & Password & "'" CmRLinux联盟
   CmRLinux联盟
    因为你的SQL将会是这样: CmRLinux联盟
    SELECT * FROM SecurityLevel WHERE UID='1'test' AND PWD='A|&900' CmRLinux联盟
   CmRLinux联盟
    在SQL中,"|"为分割字段用的,显然会出错了。现在提供下面的几个函数,专门用来处理这些头疼的东西: CmRLinux联盟
  Function ReplaceStr (TextIn, ByVal SearchStr As String, _ CmRLinux联盟
   CmRLinux联盟
    ByVal Replacement As String, _ CmRLinux联盟
   CmRLinux联盟
    ByVal CompMode As Integer) CmRLinux联盟
   CmRLinux联盟
    Dim WorkText As String, Pointer As Integer CmRLinux联盟
   CmRLinux联盟
  If IsNull(TextIn) Then CmRLinux联盟
   CmRLinux联盟
    ReplaceStr = Null CmRLinux联盟
   CmRLinux联盟
  Else CmRLinux联盟
   CmRLinux联盟
    WorkText = TextIn CmRLinux联盟
   CmRLinux联盟
    Pointer = InStr(1, WorkText, SearchStr, CompMode) CmRLinux联盟
   CmRLinux联盟
  Do While Pointer > 0 CmRLinux联盟
   CmRLinux联盟
    WorkText = Left(WorkText, Pointer - 1) & Replacement & _ CmRLinux联盟
   CmRLinux联盟
    Mid(WorkText, Pointer + Len(SearchStr)) CmRLinux联盟
   CmRLinux联盟
    Pointer = InStr(Pointer + Len(Replacement), WorkText, _ CmRLinux联盟
   CmRLinux联盟
    SearchStr, CompMode) CmRLinux联盟
   CmRLinux联盟
  Loop CmRLinux联盟
   CmRLinux联盟
    ReplaceStr = WorkText CmRLinux联盟
   CmRLinux联盟
  End If CmRLinux联盟
   CmRLinux联盟
  End Function CmRLinux联盟
   CmRLinux联盟
   CmRLinux联盟
  Function SQLFixup(TextIn) CmRLinux联盟
   CmRLinux联盟
    SQLFixup = ReplaceStr(TextIn, "'", "''", 0) CmRLinux联盟
   CmRLinux联盟
  End Function CmRLinux联盟
   CmRLinux联盟
   CmRLinux联盟
  Function JetSQLFixup(TextIn) CmRLinux联盟
   CmRLinux联盟
    Dim Temp CmRLinux联盟
   CmRLinux联盟
    Temp = ReplaceStr(TextIn, "'", "''", 0) CmRLinux联盟
   CmRLinux联盟
    JetSQLFixup = ReplaceStr(Temp, "|", "' & chr(124) & '", 0) CmRLinux联盟
   CmRLinux联盟
  End Function CmRLinux联盟
   CmRLinux联盟
   CmRLinux联盟
  Function FindFirstFixup(TextIn) CmRLinux联盟
   CmRLinux联盟
    Dim Temp CmRLinux联盟
   CmRLinux联盟
    Temp = ReplaceStr(TextIn, "'", "' & chr(39) & '", 0) CmRLinux联盟
   CmRLinux联盟
    FindFirstFixup = ReplaceStr(Temp, "|", "' & chr(124) & '", 0) CmRLinux联盟
   CmRLinux联盟
  End Function CmRLinux联盟
   CmRLinux联盟
   CmRLinux联盟
    有了上面几个函数后,当你在执行一个sql前,请先使用: CmRLinux联盟
    SQL = "SELECT * FROM SecurityLevel WHERE UID='" & SQLFixup(UserID) & "'" CmRLinux联盟
    SQL = SQL & " AND PWD='" & SQLFixup(Password) & "'" CmRLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·ASP无组件上传进度条解决方案  (2007-11-28 13:59:27)
 ·ASP文件上传原理分析及实现实例  (2007-11-28 13:57:20)
 ·不能使用asp标记的时候  (2007-11-28 13:56:56)
 ·ASP中数据库调用中常见错误的现象和解决  (2007-11-28 13:56:28)
 ·ASP 五大高效提速技巧  (2007-11-28 13:54:54)
 ·ASP开发中数据库文件调用  (2007-11-28 13:53:46)
 ·ASP的编程常见问题  (2007-11-28 13:53:16)
 ·asp模似windows XP 左侧的菜单效果  (2007-11-28 13:52:15)
 ·Flash和Asp数据库的结合应用  (2007-11-28 13:50:31)
 ·用ASP建立站内搜索  (2007-11-28 13:49:23)