我想對舊的VB web應用程序做一些小的改動,我需要在字符串裏面添加引號我到目前爲止還沒有運氣。字符串是VB6中的字符串轉義引號
Dim sql As String = "Select * from Usertask Where UserId = " & Session("UserId") & " and JobID=" & ddlReqTask.SelectedValue
我需要在會話(「UserID」)值周圍添加引號。
我想對舊的VB web應用程序做一些小的改動,我需要在字符串裏面添加引號我到目前爲止還沒有運氣。字符串是VB6中的字符串轉義引號
Dim sql As String = "Select * from Usertask Where UserId = " & Session("UserId") & " and JobID=" & ddlReqTask.SelectedValue
我需要在會話(「UserID」)值周圍添加引號。
您可以使用""
插入報價爲一個字符串e.g:
dim sometext as String = "Hello ""Frank"" how are you?"
,讓你
你好 「弗蘭克」 怎麼是你?
爲了逃避,你只需要添加一個報價報價,我相信這是你所需要的:
Dim sql As String = "Select * from Usertask Where UserId = """ & Session("UserId") & """ and JobID=" & ddlReqTask.SelectedValue
你也可以在concatentation使用Chr(34)
。
Dim sql As String = "Select * from Usertask Where UserId = " & Chr(34) & Replace(Session("UserId"), Chr(34), Chr(34) & Chr(34)) & Chr(34) & " and JobID=" & CLng(ddlReqTask.SelectedValue)
無論哪種方式的作品(其他例子和這一個)。有些人喜歡這個,因爲它可以減少混亂,但上面的例子中的arent完美ledgible和的arent exatly火箭科學
這是一個SQL注入漏洞,你應該不那樣做。通過做這種方式,你允許你的用戶通過給你一個用戶ID喜歡
'; DROP TABLE Usertask; --
相反,使用參數來執行他們想要的任何查詢。根據你如何執行SQL,有不同的方法來做到這一點;請向我們展示執行SQL查詢的代碼。
在回答你的問題,
Dim StringWithQuotes As String = "Hello, I've got ""Quotes""!"
此字符串將是
你好,我有 「行情」!
根據我的經驗,大多數SQL服務器都需要單個字符串報價。 最好的辦法是讓.NET通過使用SQL參數爲你保留。下面是一個示例(同樣在VB.Net中):http://www.knowdotnet.com/articles/dynamicsqlparameters.html
這也有對SQL注入的安全性的好處。
我建議你使用參數化的SQL,而不是像這樣建立一個adhoc SQL語句,因爲你可以讓自己開放SQL注入。這意味着您不必擔心將引號連接到字符串中,並且還可以提高查詢性能(假設SQL Server),因爲它允許執行計劃緩存和重用。
例如
Dim sql As String = "Select * from Usertask Where UserId = ? AND JobID = ?"
然後加入2個ADODB.Parameters到命令對象爲2個參數 例如提供的值
Set param = New ADODB.Parameter
param.Name = "@UserId"
param.Direction = adParamInput
param.Type = adVarChar
param.Size = (give size of user id field)
param.value = Session("UserId")
yourADOCommand.Parameters.Append param
對於JobId參數又是一樣的。
是這樣的..
dim user_id as string="SomePerson"
debug.print "UserId=" & chr(34) & user_id & Chr(34)
產生..
UserID="SomePerson"
你需要雙引號或單引號?通常SQL使用單引號,我不認爲這將是一個字符串中的問題。 – 2009-07-09 10:54:22
@Adonis L,你可能想要改變問題的標題。可能更適合稱它爲「在VB6中的字符串中引用引號」或者沿着這些行引用。 – 2009-07-09 11:00:22