我有问题,使用MySQL,用下面的代码:MySQL的.NET连接器撇号问题
Imports MySql.Data.MySqlClient 'Last version 6.9.9.0 ADO.Net driver for MySQL
Dim commandSQL As MySqlCommand
connMySQL.Open()
commandSQL = connMySQL.CreateCommand
commandSQL.Connection = connMySQL
commandSQL.CommandText = "UPDATE t_tesordacq SET [email protected]_FOR WHERE
YEAR_DOC = 2017 And NUM_DOC = 123" With
commandSQL.Parameters.AddWithValue("@COD_FOR",txtCodFor.Text)
End With
commandSQL.ExecuteNonQuery()
commandSQL.Parameters.Clear()
当我插入的txtCodFor领域的文本,其中包含一个撇号(前:我是),代码出错了(*错误:您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以便在'\'test' WHERE YEAR_DOC = 2017 And NUM_DOC = 123,*).
附近使用正确的语法
我也尝试更换带双撇号的文本:txtCodFor.Text.Replace(“'”,“''”)但无事可做。 另外,如果我插入一个反斜杠,它是重复的!
我已经看到,如果我从my.ini中的sql_mode中删除“NO_BACKSLASH_ESCAPES”选项,则一切正常。 可惜我不能永远用VB6(ODBC连接)
感谢您的帮助的书面申请删除此选项兼容性
你为什么用C#标记这个? – DavidG
,因为我也接受c#代码示例# –