我正在使用查詢從SQL數據庫中提取數據,有時使用最後一個下拉菜單來獲取我正在查找的記錄有一個單引號,當它出現時以下錯誤:'s'附近語法不正確。字符串後閉合的引號's'附近的語法不正確。在字符串後面未使用引號
這是我的代碼:
Using objcommand As New SqlCommand("", G3SqlConnection)
Dim DS01 As String = DDLDS01.SelectedItem.Text
Dim State As String = DDLState.SelectedItem.Text
Dim Council As String = DDLCouncil.SelectedItem.Text
Dim Local As String = DDLLocal.SelectedItem.Text
Dim objParam As SqlParameter
Dim objDataReader As SqlDataReader
Dim strSelect As String = "SELECT * " & _
"FROM ConstitutionsDAT " & _
"WHERE DS01 = '" & DS01 & "' AND STATE = '" & State & "' AND COUNCIL = '" & Council & "' AND LOCAL = '" & Local & "' AND JURISDICTION = '" & DDLJurisdiction.SelectedItem.Text & "' "
strSelect.ToString.Replace("'", "''")
objcommand.CommandType = CommandType.Text
objcommand.CommandText = strSelect
Try
objDataReader = objcommand.ExecuteReader
DDLJurisdiction.Items.Add("")
While objDataReader.Read()
If Not IsDBNull(objDataReader("SUBUNIT")) Then
txtSubUnit.Text = (objDataReader("SUBUNIT"))
End If
If Not IsDBNull(objDataReader("DS02")) Then
lblDS02.Text = (objDataReader("DS02"))
End If
If Not IsDBNull(objDataReader("LEGISLATIVE_DISTRICT")) Then
txtALD.Text = (objDataReader("LEGISLATIVE_DISTRICT"))
End If
If Not IsDBNull(objDataReader("REGION")) Then
txtRegion.Text = (objDataReader("REGION"))
End If
If DDLState.SelectedItem.Text <> "OTHER" Then
If Not IsDBNull(objDataReader("UNIT_CODE")) Then
txtUnitCode.Text = (objDataReader("UNIT_CODE"))
End If
End If
End While
objDataReader.Close()
Catch objError As Exception
OutError.Text = "Error: " & objError.Message & objError.Source
Exit Sub
End Try
End Using
並非所有的記錄都包含一個單引號,只有一些,所以我需要的東西,將工作,如果一個單引號是是否存在。 謝謝。
我覺得甚至告訴別人如何通過轉義字符「修復」的查詢是像有人向你走來,說:「我有一個頭痛的問題。我正在尋找錘子打擊我的頭骨,你看到了嗎?「 「哦,是的,它就在那邊。」而不是隻是說:「不!停!獲得一些泰諾。」 :) – aquinas 2014-08-29 17:52:16
@aquinas不夠公平。但我仍然想指出如何解決他們所做的問題,然後指出有一個更好的方法,因爲我想回答他們提出的問題。 – 2014-08-29 17:53:57
即使我刪除替換字符串後,我收到此錯誤。我只是在網絡上搜索答案後纔將其包括在內。如果我直接進入SQL表並從記錄中刪除單引號,那麼查詢就可以正常工作,只有當文本包含's ... – user3991041 2014-08-29 18:00:29