日期:2014-05-16  浏览次数:20729 次

VB连接MYSQL数据的方法

第一步:上网http://dev.mysql.com/downloads/connector/odbc/下载mysql-connector-odbc-5.1.6-win32.msi

?

第二步:安装mysql-connector-odbc-5.1.6-win32.msi

?

第三步:运行VB并新建一标准EXE工程, 通过菜单 工程->引用 打开”引用”对话框, 找到 Microsoft ActiveX Data Objects x.x Library , 其中 x.x 是版本号, 可能会有很多个, 这里我选择的是 2.5

?

第四步:打开代码窗口, 在 Form_Load 过程中输入下面的代码(具体说明在代码的注释中):

' 定义并创建数据库连接和访问对象   
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   
  
' 初始化数据库连接变量   
db_host = "localhost"  
db_user = "root"  
db_pass = ""  
db_data = "erqiuda"  
  
' MySQL ODBC 连接参数   
'+------------+---------------------+----------------------------------+   
'| 参数名     | 默认值              | 说明                               |   
'+------------+------------------------------------------------------–+   
'| user       | ODBC (on Windows)   | MySQL 用户名   
'| server     | localhost           | MySQL 服务器地址  
'| database   |                     | 默认连接数据库  
'| option     | 0                   | 参数用以指定连接的工作方式  
'| port       | 3306                | 连接端口 
'| stmt       |                     | 一段声明, 可以在连接数据库后运行  
'| password   |                     | MySQL 用户密码  
'| socket     |                     | (略)   
'+------------+---------------------+----------------------------------+   
  
' 详细查看官方说明   
' http://dev.mysql.com/doc/refman/5.0/en/myodbc-configuration-connection-parameters.html   
  
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   
  
' 访问表users   
sql = "select * from users"  
rs.Open sql, cn   
MsgBox rs.RecordCount 

?

?