1 從官網下載MYSQL的ODBC,選擇與自己操作系統對應的版本(前提是你安裝了MYSQL)
http://dev.mysql.com/downloads/connector/odbc/
2 安裝完成之后,搜索數據源,你可以發現剛才裝好的MYSQL ODBC驅動
3 新建一個VB6的工程,引用microsoft activex data objects 2.8 library
4 在這個VB6的工程中,復制粘貼以下代碼(所有代碼都在Form_Load中,不需要做別的什么按鈕,控件),其中紅色部分是你需要修改的代碼
Private Sub 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
' 能連接得上數據庫(即便主機端口是8080,也沒事)
' 初始化數據庫連接變量
'連接的主機名
db_host = "localhost"
'連接的用戶名
db_user = "root"
'連接的密碼
db_pass = "123456"
'連接的表名
db_data = "vb_test"
' 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.2 ANSI 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
' 表要對的上
' 訪問表 tg_user
sql = "select * from tg_user"
rs.Open sql, cn
MsgBox rs.RecordCount
End Sub
5 然后就能連接上了(見本文最后附上的代碼,包括了所有數據庫的常見操作:插入,修改,查詢,刪除)
Private Sub 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 = "123456"
'連接的表名
db_data = "vb_test"
' MySQL ODBC 連接參數
'+------------+---------------------+----------------------------------+
'| 參數名 | 默認值 | 說明 |
'+------------+------------------------------------------------------–+
'| user | ODBC (on Windows) | MySQL 用戶名 |
'| server | localhost | MySQL 服務器地址 |
'| database | | 默認連接數據庫 |
'| option | 0 | 參數用以指定連接的工作方式 |
'| port | 3306 | 連接端口 |
'| stmt | | 一段聲明, 可以在連接數據庫后運行 |
'| password | | MySQL 用戶密碼 |
'| socket | | (略) |
'+------------+---------------------+----------------------------------+
strCn = "DRIVER={MySQL ODBC 5.2 ANSI 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
' 訪問表 tg_user
'sql = "select * from tg_user"
'rs.Open sql, cn
'返回所有記錄的條數
'MsgBox rs.RecordCount
'cn現在就是SQL的操作對象,一切與數據庫操作的都是cn的事情
'插入數據 如果數據庫已經存在主鍵,則主鍵不能重復!!!
'如果這個字段是字符串,一定要加''
'cn.Execute "INSERT INTO 表名 (字段名1,字段名2) values('數據1','數據2')"
'cn.Execute "INSERT INTO tg_user(user_name,password) values('bbb','998877')"
'cn.Execute "INSERT INTO tg_user(user_name,password) values('ccc','998877')"
'MsgBox ("插入成功")
'修改數據 如果沒找到這個字段符合的記錄,則自動結束,不會報錯
'cn.Execute "UPDATE tg_user set user_name='ddd' WHERE user_name= 'ccc'"
'如果是變量,或者要更新的不止一條記錄,則代碼參考下面,沒找到也不會報錯
'new_username = "eee"
'new_password = "222222"
'cn.Execute "UPDATE tg_user set user_name='" & new_username & "', password='" & new_password & "'WHERE user_name= 'ccc'"
'MsgBox ("修改成功")
'刪除數據 如果沒找到這個字段符合的記錄,則自動結束,不會報錯
'cn.Execute "DELETE FROM tg_user WHERE user_name = 'ccc'"
'如果是變量,則還是加'"& 變量名 &"'
'new_username = "eee"
'cn.Execute "DELETE FROM tg_user WHERE user_name = '" & new_username & "'"
'MsgBox ("刪除成功")
'查詢數據
current_username = "abc"
sql = "select * from tg_user"
rs.Open sql, cn
'返回取得的第一條記錄,如果要輸出這條記錄的第一個字段,就是rs.Fields(0),第二個字段就是rs.Fields(1)
'MsgBox ("user_name:" & rs.Fields(0))
'MsgBox ("password:" & rs.Fields(1))
'如果取得的不止一條記錄,則用rs.MoveNext 讓指針指向下一條記錄
While rs.EOF = False '如果EOF為真,則表示"游標"已經在最后一條記錄后面。
MsgBox ("user_name:" & rs.Fields(0) & "||password:" & rs.Fields(1))
rs.MoveNext
Wend
End Sub