我使用vb.net+my sql connector 6.9.5
出现一个非常奇怪的问题就是sql语句where查询不能出现中文。
Dim xmText As String = TreeView1.SelectedNode.Text
Dim level As Integer
Dim connStr As String = "server=" & serveAddress & ";user=" & dataBaseUserName & ";database=clothes;port=" & dataBasePort & ";password=" & dataBasePassWord & ";"
Dim conn As New MySqlConnection(connStr)
Dim sqlstr As String = "SELECT * from catalogtree where itemname='" & xmText.Trim & "'"
'sqlstr = "SELECT * from catalogtree where itemname='皮衣'"
sqlstr = "SELECT * from catalogtree where memo like 'av好%'"
sqlstr = "SELECT * from catalogtree where memo like 'av%'"
'sqlstr = "SELECT * from catalogtree where level=100"
Dim ap As New MySqlDataAdapter(sqlstr, conn)
Dim ds As New DataSet
Try
conn.Open()
ap.Fill(ds, "tree")
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
sqlstr = "SELECT * from catalogtree where memo like 'av好%'"
sqlstr = "SELECT * from catalogtree where memo like 'av%'"
这两个语句,数据库中memo的内容是'av好', like 'av%'可以查到, like 'av好%'不行
memo='av好'不行,把数据库改成'av'后memo='av'就可以查到。
总归一句话,where中查询条件不能有中文,英文数字都可以,大家是否知道怎么解决?
------解决思路----------------------
MySQL字符集问题是乱码的根源。刚开始安装mysql时大家都不注意将字符集设成utf8,所以之后总是会遇到各种各样中文乱码问题。