SQL 用撇号插入数据库

2024-01-17

我正在经典 ASP 上运行一个程序,并使用以下内容插入数据库:

CreateJob.CommandText = "INSERT INTO dbo.Jobs (JobID, CompanyName, DateReceived, DateOfDocument, ClientReference, Subject, TypeOfService,DueDate,AssignedAgent, ClientName, Plaintiff, Defendant1, Defendant2, Defendant3, CourtJurisdiction, Court, Subtype, CourtNumber, Amount, ServiceMethod, JobNotes, JobStatus, CreatedBy, CreatedDate)  VALUES (" & Request.Form("jobid") & ", '""" & Request.Form("compname") & """', '" & Request.Form("datereceived") & "','" & Request.Form("dateofdoc") & "', '" & Request.Form("clientref") & "', '" & Request.Form("subjects") & "', '" & Request.Form("TypeOfService") & "', '" & Request.Form("duedate") & "', '" & Request.Form("AssignedAgent") & "', '" & Request.Form("ClientName") & "', '" & Request.Form("Plaintiff") & "', '" & Request.Form("Defendant1") & "', '" & Request.Form("Defendant2") & "', '" & Request.Form("Defendant3") & "', '" & Request.Form("CourtJurisdiction") & "', '""" &  Request.Form("Court") & """', '" & Request.Form("SubType") & "', '" & Request.Form("CourtNumber") & "', '" & Request.Form("Amount") & "','" & Request.Form("ServiceMethod") & "','" & Request.Form("JobNotes") & "', 'OPEN', '" & Session("LoggedName") & "', CURRENT_TIMESTAMP ) "

但是,如果其中一个值有撇号,程序就会崩溃,并且我不知道如何转义它。

Thanks


替换不是这里的方法,您已经在使用ADODB.Command对象所以为什么不使用参数化查询 http://www.codinghorror.com/blog/2005/04/give-me-parameterized-sql-or-give-me-death.html.

尝试这个;

由于您没有提供有关字段类型的信息,我只能推测,所以我添加了[datatype] and [size]供您替换的占位符ADO 数据类型常量 http://msdn.microsoft.com/en-us/library/windows/desktop/ms675318(v=vs.85).aspx。有关 T-SQL 中的数据类型如何映射到的良好资源ado /questions/tagged/ado这篇文章是——数据类型映射 http://carlprothman.net/Technology/DataTypeMapping/tabid/97/Default.aspx

sql = ""
sql = sql & "INSERT INTO dbo.Jobs (" & vbCrLf
sql = sql & "JobID, CompanyName, DateReceived, DateOfDocument, ClientReference" & vbCrLf
sql = sql & ", Subject, TypeOfService,DueDate,AssignedAgent, ClientName, Plaintiff" & vbCrLf
sql = sql & ", Defendant1, Defendant2, Defendant3, CourtJurisdiction, Court" & vbCrLf
sql = sql & ", Subtype, CourtNumber, Amount, ServiceMethod, JobNotes, JobStatus" & vbCrLf
sql = sql & ", CreatedBy, CreatedDate" & vbCrLf
sql = sql & ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"

With CreateJob
    .ActiveConnection = "yourconnectionstring"
    .CommandType = adCmdText
    .CommandText = sql
    'Add your parameters (all 24 of them in order)
    'Assumed JobID is int which equates to adInteger ADO data type constant.
    .Parameters.Append(.CreateParameter("@JobID", adInteger, adParamInput, 4))
    .Parameters.Append(.CreateParameter("@CompanyName", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@DateReceived", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@DateOfDocument", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@ClientReference", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@Subject", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@TypeOfService", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@DueDate", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@AssignedAgent", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@ClientName", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@Plaintiff", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@Defendant1", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@Defendant2", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@Defendant3", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@CourtJurisdiction", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@Court", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@Subtype", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@CourtNumber", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@Amount", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@ServiceMethod", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@JobNotes", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@JobStatus", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@CreatedBy", [datatype], adParamInput, [size]))
    .Parameters.Append(.CreateParameter("@CreatedDate", [datatype], adParamInput, [size]))

    'Specify your parameter values may need some conversion based on what you are passing.
    .Parameters("@JobId").Value = Request.QueryString("jobid")
    'Add the other 23 parameters as the above line.
    '...

    'Doing an INSERT no need to return recordset
    Call .Execute(adExecuteNoRecords)
End With
Set CreateJob = Nothing
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 用撇号插入数据库 的相关文章

随机推荐

  • 我们应该如何管理jdk8流的空值

    我知道这个话题可能有点in advance因为 JDK8 尚未发布 至少现在还没有发布 但我正在阅读一些有关 Lambda 表达式的文章 特别是与称为 Stream 的新集合 API 相关的部分 这是中给出的示例Java 杂志文章 http
  • 如何在gradle中下载依赖项

    我有一个自定义编译任务 task compileSpeedTest type JavaCompile classpath files build source fileTree src test java speed destination
  • 安卓相机预览

    我有个问题 我正在尝试开发一个使用相机的程序 一切都在我的设备中运行 但就像你们很多人都知道的那样CameraPreview并非在所有设备上都以相同的方式工作 因此我尝试集成谷歌在此地址中提供的代码 http developer andro
  • 了解 IoC 容器和依赖注入

    我的理解 依赖关系是指 Class 的实例需要 Class 的实例来实例化 ClassA 的新实例 依赖注入是指通过 ClassA 构造函数中的参数或通过 set DependencyNameHere DependencyNameHere
  • 参数化和“不允许函数模板部分专业化”

    这是一个延续constexpr 的函数参数等效项是什么 https stackoverflow com q 39284065在最初的问题中 我们试图加速一些在 Clang 和 VC 下执行移位和旋转的代码 Clang 和 VC 没有很好地优
  • 如果在 UNIX 中的信号处理期间,相同的信号被发送到程序,会发生什么情况?

    对此有什么想法吗 是否存在某种信号队列 或者它是否被丢弃 当我们讨论这个问题时 信号处理程序是否应该做尽可能少的工作 我在某处读到信号处理程序应该使用管道并只向其中写入一个字节 指示程序应该做什么 然后程序在其他地方定期检查管道 并根据其中
  • f:复合组件的参数

    在 JSF2 1 复合组件中 如果我们尝试将 f param 传递给复合组件 命令按钮 并在组件中接收 editableValueHolder 它似乎不起作用 有任何想法吗
  • MessageBox.Show 在应用程序关闭/停用事件中

    我在 Windows Phone 7 8 应用程序的应用程序关闭 停用方法中显示了一个 MessageBox 它用于警告用户活动计时器因应用程序正在关闭而被禁用 应用程序关闭 停用事件非常适合此目的 因为将逻辑放入所有应用程序页面中将是一个
  • 网络可用性 - 背景音乐

    我个人讨厌网站上的背景音乐 我的客户对这个问题有相反的看法 我添加了音乐 因为客户永远是对的 尽管我想与他们一起重新讨论这个主题 几乎每个人都会同意它很烦人并且浪费宝贵的带宽 但是是否有任何可用性研究或对业内受人尊敬的人的建议可以提供反对背
  • 学习/实现设计模式(对于新手)[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • /sbin/ldconfig.real:无法统计 /lib/x86_64-linux-gnu

    当我在 Ubuntu 机器上运行 ldconfig 时 我收到警告 sbin ldconfig real 无法统计 lib x86 64 linux gnu 据我所知 这还没有造成任何问题 但我想 修复 它 以防它稍后回来咬我 有谁知道我为
  • Heroku HIPAA 合规性

    是否可以在 Heroku 上运行符合 HIPAA 要求的应用程序 更具体地说 我需要两个应用程序 一个存储会员信息 另一个存储会员的私人健康信息 我打算使用非对称和对称密钥加密来加密敏感数据 对于将会员与其在其他应用程序上的敏感数据链接起来
  • 如何在 mongoose 中查找包含给定子字符串且带有空格的所有结果

    我找到了很多解决这个问题的方法 但没有一个有效 假设我有以下架构 var Schema new Schema name String url String 假设我的条目之一是 name Product and Services url ww
  • 我无法在 shell 中使用 jq 从 JSON 文件中获取 Key 属性值[重复]

    这个问题在这里已经有答案了 我试图从下面的 JSON 文件中获取密钥 我刚刚执行了下面的命令 它将给出下面的 JSON 输出 Command jq r issues Output expand schema names startAt 0
  • 为什么我的 .storyboards 在 Xcode 11.1 中变成红色?

    刚刚更新到 Mac OS X Catalina 10 15 和 Xcode 11 1 我的一些情节提要变成了红色 所有图形似乎都在那里 但一切都是红色的 非常红 如下所示 他们仍然发布正常 这在我的 MacBook Pro 上的 OS X
  • Character.getNumericValue 的相反是什么

    int x Character getNumericValue A System out println the value of x is x prints 10 我正在寻找一种方法somemethod 10 并返回 A java中是否存
  • 合并msi和exe

    我的部署项目创建 msi 文件和 exe 文件 是否可以将这些合并为一个 exe 是的 您可以创建一个包含 MSI 和 setup exe 引导程序文件的自解压安装程序 我认为可以使用 WinZip 来做到这一点 或者您也可以使用 Wind
  • 保存父实体时,新的子实体将不会保存

    我有一个父实体 foo存在于数据库中 我有一个属性bar在此实体上 一对多关系 Foo已分离 因为它使用 WebApi 进行反序列化 所以我这样做是为了foo context Foos AddOrUpdate foo 就算有新的bar附加到
  • 使用 WebJob 将 Web 应用程序发布到 Azure 时卡住

    我刚刚使用 WebJob SDK 将 WebJob 添加到我的 Web 应用程序中 现在 在发布Web应用程序时 VS在发布时卡住了 不会挂起 但也不会进展 我知道这是由 WebJob 引起的 因为当我删除webjobs list json
  • SQL 用撇号插入数据库

    我正在经典 ASP 上运行一个程序 并使用以下内容插入数据库 CreateJob CommandText INSERT INTO dbo Jobs JobID CompanyName DateReceived DateOfDocument