簡體   English   中英

應該在sql字符串參數中轉義哪些字符

[英]what characters should be escaped in sql string parameters

我需要一個完整的字符列表,應該在sql字符串參數中進行轉義以防止異常。 我假設在將其傳遞給我的ObjectDataSource過濾器參數之前,我需要用轉義版本替換所有違規字符。

不,ObjectDataSource將為您處理所有轉義。 任何參數化查詢也不需要轉義。

正如其他人所指出的,在有人認為他們需要提出這個問題的99%的案例中,他們做錯了。 參數化是要走的路。 如果你真的需要自己逃避,試着找出你的數據庫訪問庫是否為此提供了一個函數(例如,MySQL有mysql_real_escape_string )。

這是我用來擺脫撇號的一種方式。 您可以與遇到的其他違規字符做同樣的事情。 (在VB.Net中的示例)

Dim companyFilter = Trim(Me.ddCompany.SelectedValue)

If (Me.ddCompany.SelectedIndex > 0) Then
      filterString += String.Format("LegalName like '{0}'", companyFilter.Replace("'", "''"))
End If

Me.objectDataSource.FilterExpression = filterString

Me.displayGrid.DataBind()

SQL Books online:搜索字符串文字:

字符串文字

字符串文字由零個或多個由引號括起的字符組成。 如果字符串包含引號,則必須對這些引號進行轉義,以便解析表達式。 字符串中允許除\\ x0000之外的任何雙字節字符,因為\\ x0000字符是字符串的空終止符。

字符串可以包含需要轉義序列的其他字符。 下表列出了字符串文字的轉義序列。

\\ a警報

\\ b退格

\\ f表格Feed

\\ n新行

\\ r \\ n回車

\\ t水平標簽

\\ v垂直選項卡

“引號

\\反斜杠

\\ xhhhh十六進制表示法中的Unicode字符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM