VB连接Mysql查询出错,是哪里的问题?

一转程序员 2008-09-25 12:57:37
下面代码运行时,text1中输入数字或字母都没问题,输出的中文也正常。但是如果输入中文查询就会出现错误,如图

所用到的表中字符型字段编码都是latin1_swedish_ci

Private 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 & "%';", conn

While 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 = s

rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing

End Sub
...全文
151 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyangxiaoxiao 2008-09-25
  • 打赏
  • 举报
回复
Dim conn As New ADODB.Connection
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 & "%';", conn

While 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 = s

rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing


我用上面的代码试过,没有问题的,可能是你的那个连接有问题,你换成我的试一下看看。
Paradisefox 2008-09-25
  • 打赏
  • 举报
回复
跟贴 一起等 编码问题
一转程序员 2008-09-25
  • 打赏
  • 举报
回复
上面的是跟2楼的说的

3楼的朋友,跟这个";"号是没关系的,我写PHP习惯了,总是带个分号,去掉分号这个程序运行结果也是一样的
一转程序员 2008-09-25
  • 打赏
  • 举报
回复
楼上的没看明白我的意思,数据库是没问题的,用命令行查询是没问题的
如果把SQL换成select * from quiz where id=1,这样在VB里输出也是正确的,但是中间有中文就是不行
oyangxiaoxiao 2008-09-25
  • 打赏
  • 举报
回复
rs.Open "select question,answer1,answer2,answer3,answer4,result from cq_quiz where question like '%" & Text1.Text & "%';", conn
“%”后面还需要“;”吗?!
Tiger_Zhao 2008-09-25
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20050720/16/4157119.html
http://topic.csdn.net/t/20050416/20/3942369.html
http://wordpress.org.cn/viewthread.php?tid=5368
一转程序员 2008-09-25
  • 打赏
  • 举报
回复
真受不了,原来是ODBC驱动的问题
换成3.51版本的,可以设置charset,5.1版本的就没有这个

本来还以为新版本的会好一些
一转程序员 2008-09-25
  • 打赏
  • 举报
回复
难道是MySQL ODBC 5.1 Driver不行?
晚上我去换3.51试试吧

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧