vb访问mysql中文字能查询不能修改

vb访问mysql中文字能查询不能修改
2025-04-04 03:20:32
推荐回答(1个)
回答1:

Dim cn As New adodb.Connection
Dim rs As New adodb.Recordset

' 定义数据库连接字符串变量
Dim strCn As String

' 定义数据库连接参数变量
Dim db_host As String
Dim db_user As String
Dim db_pass As String
Dim db_data As String

' 定义 SQL 语句变量
Dim sql As String
Dim setup As String

'——————————————————————————————————————————

' 初始化数据库连接变量
If Option1.Value = True Then
db_host = Text1.Text
Else
db_host = Text2.Text
End If
db_user = "root"
db_pass = "123"
db_data = "tiku"

' MySQL ODBC 连接参数
'+------------+---------------------+----------------------------------+
'| 参数名 | 默认值 | 说明 |
'+------------+------------------------------------------------------–+
'| user | ODBC (on Windows) | MySQL 用户名 |
'| server | localhost | MySQL 服务器地址 |
'| database | | 默认连接数据库 |
'| option | 0 | 参数用以指定连接的工作方式 |
'| port | 3306 | 连接端口 |
'| stmt | | 一段声明, 可以在连接数据库后运行 |
'| password | | MySQL 用户密码 |
'| socket | | (略) |
'+------------+---------------------+----------------------------------+

' 详细查看官方说明
'

strCn = "DRIVER={MySQL ODBC 5.1 Driver};" & _
"SERVER=" & db_host & ";" & _
"DATABASE=" & db_data & ";" & _
"UID=" & db_user & ";PWD=" & db_pass & ";" & _
"OPTION=3;stmt=SET NAMES GB2312"

' stmt=SET NAMES GB2312
' 这句是设置数据库编码方式
' 中文操作系统需要设置成 GB2312
' 这样中文才不会有问题
' 版本要求 mysql 4.1+

' 连接数据库
cn.Open strCn
' 设置该属性, 使 recordcount 和 absolutepage 属性可用
cn.CursorLocation = adUseClient

'执行SQL语句

sql = "select * from main"
rs.Open sql, cn, 1, 3
If rs.RecordCount > 0 Then
Set MSHFlexGrid1.DataSource = rs
Else
MsgBox "没有记录"
End If