如果我使用参数,我正在使用 VB.NET 中的 MySQLCommand 对象进行 MySQL Select 查询。我面临一个问题,在我的 where 子句中,我需要将条件的值放入单引号中,我尝试使用反斜杠 ' (\') 来转义单引号,但它不起作用。我也使用了双引号,同样的问题。有人可以帮助我吗?在带有参数的 VB.NET 中使用 MySQLCommand 对象并希望我的参数值在查询中以单引号形式出现时,我需要做一些具体的事情吗?
这是我在其中进行 MySQL 查询的函数:
Public Shared Function getGeographyUnits(critere As String, valeur As String) As List(Of geography_unit)
Dim conn As MySqlConnection = DBUtils.GetDBConnection()
Dim rdr As MySqlDataReader
conn.Open()
Dim cmd As MySqlCommand = New MySqlCommand("select ID,description from geography_unit where @critere = ''@valeur''", conn)
cmd.Parameters.AddWithValue("@critere", critere)
cmd.Parameters.AddWithValue("@valeur", valeur)
rdr = cmd.ExecuteReader()
Dim geography_units As New List(Of geography_unit)
While rdr.Read
Dim geography_unit As New geography_unit
Try
geography_unit.ID = CLng(rdr("Id"))
geography_unit.description = rdr("description")
Catch ex As Exception
End Try
geography_units.Add(geography_unit)
End While
rdr.Close()
conn.Close()
Return geography_units
End Function
实际上,我希望我的查询的 cmdText 在渲染后是这样的:
select ID,description from geography_unit where critere = 'valeur'
问题主要来自我使用参数的事实,我该如何解决?