У меня проблема с апострофами при обработке обновлений запросов SQLCommand. У меня есть сетка, которая принимает отредактированный текст, который может содержать апострофы и другие подобные символы ударения.
UPDATE продолжает выдавать ошибки в апострофах во введенном тексте, что приводит к сбою SQL UPDATE.
Вот код:
Dim lbl1 As Label = GridView3.Rows(e.RowIndex).Cells(0).FindControl("Label1")
IDVal = lbl1.Text
' New translation
Dim TB1 As TextBox = GridView3.Rows(e.RowIndex).Cells(0).FindControl("TextBox1")
updateString = TB1.Text
updateString = HttpUtility.HtmlAttributeEncode(updateString)
' Brief Description
Dim TB2 As TextBox = GridView3.Rows(e.RowIndex).Cells(0).FindControl("TextBox2")
newBrief = TB2.Text
If newBrief = "" Then
newBrief = DBNull.Value.ToString
Else
newBrief = TB2.Text
End If
' update the corresponding string value for Record
rootTableUpdate = "UPDATE " + userTable + " SET lang_String = '" + updateString + "', date_Changed ='" + myDate + "', prev_LangString = '" + Session("oldString") + "', brief_Descrip = '" + newBrief + "', needsTranslation = 'False', submittedBy= '" + userName + "' WHERE [Id] = " + IDVal + ";"
Dim command1 As New SqlCommand(rootTableUpdate, connection)
connection.Open()
command1.ExecuteNonQuery()
connection.Close()
Слово, которое ошибка приведена ниже, на самом деле: d'alimentation.
Неверный синтаксис рядом с «пищей»
Незакрытая кавычка после символьной строки 'WHERE [Id] = 258;'.
Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении:
System.Data.SqlClient.SqlException: неправильный синтаксис рядом с 'alimentation'.
Незакрытая кавычка после символьной строки 'WHERE [Id] = 258;'.
Ошибка источника:
Line 164: Dim command1 As New SqlCommand(rootTableUpdate, connection)
Line 165: connection.Open()
Line 166: command1.ExecuteNonQuery()
SQEE, VB.net