下面代码运行时,text1中输入数字或字母都没问题,输出的中文也正常。但是如果输入中文查询就会出现错误,如图所用到的表中字符型字段编码都是latin1_swedish_ciPrivate Sub Command1_Click()Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim connstr As String
connstr = "DRIVER={MySQL ODBC 5.1 Driver};" & "SERVER=127.0.0.1;" & "port=3306;" & "DATABASE=my;" & "UID=root;PWD=rufeng;OPTION=3"
conn.Open connstr
conn.CursorLocation = adUseClient
rs.Open "select question,answer1,answer2,answer3,answer4,result from cq_quiz where question like '%" & Text1.Text & "%';", connWhile Not rs.EOF
Debug.Print rs.Fields(0).Value, rs.Fields(1).Value
s = s & rs.Fields("question").Value & String(5, " ") & rs.Fields("answer1").Value & String(1, "|") & rs.Fields("answer2").Value & String(1, "|") & rs.Fields("answer3").Value & String(1, "|") & rs.Fields("answer4").Value & String(1, "|") & rs.Fields("result").Value & String(1, "|") & vbCrLf
rs.MoveNext
Wend
Text2.Text = srs.Close
conn.Close
Set rs = Nothing
Set conn = NothingEnd Sub
Dim rs As New ADODB.Recordset
Dim connstr As String
connstr = "DRIVER={MySQL ODBC 5.1 Driver};" & "SERVER=127.0.0.1;" & "port=3306;" & "DATABASE=my;" & "UID=root;PWD=rufeng;OPTION=3"
conn.Open connstr
conn.CursorLocation = adUseClient
rs.Open "select question,answer1,answer2,answer3,answer4,result from cq_quiz where question like '%" & Text1.Text & "%';", connWhile Not rs.EOF
Debug.Print rs.Fields(0).Value, rs.Fields(1).Value
s = s & rs.Fields("question").Value & String(5, " ") & rs.Fields("answer1").Value & String(1, "|") & rs.Fields("answer2").Value & String(1, "|") & rs.Fields("answer3").Value & String(1, "|") & rs.Fields("answer4").Value & String(1, "|") & rs.Fields("result").Value & String(1, "|") & vbCrLf
rs.MoveNext
Wend
Text2.Text = srs.Close
conn.Close
Set rs = Nothing
Set conn = NothingEnd Sub
http://topic.csdn.net/t/20050416/20/3942369.html
http://wordpress.org.cn/viewthread.php?tid=5368
“%”后面还需要“;”吗?!
如果把SQL换成select * from quiz where id=1,这样在VB里输出也是正确的,但是中间有中文就是不行
Dim rs As New ADODB.Recordset
Dim connstr As String
connstr = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=用户名;Password=密码;Initial Catalog=数据库名;Data Source=计算机名"conn.Open connstr
conn.CursorLocation = adUseClient
rs.Open "select question,answer1,answer2,answer3,answer4,result from cq_quiz where question like '%" & Text1.Text & "%';", connWhile Not rs.EOF
Debug.Print rs.Fields(0).Value, rs.Fields(1).Value
s = s & rs.Fields("question").Value & String(5, " ") & rs.Fields("answer1").Value & String(1, "|") & rs.Fields("answer2").Value & String(1, "|") & rs.Fields("answer3").Value & String(1, "|") & rs.Fields("answer4").Value & String(1, "|") & rs.Fields("result").Value & String(1, "|") & vbCrLf
rs.MoveNext
Wend
Text2.Text = srs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
我用上面的代码试过,没有问题的,可能是你的那个连接有问题,你换成我的试一下看看。
晚上我去换3.51试试吧
换成3.51版本的,可以设置charset,5.1版本的就没有这个本来还以为新版本的会好一些