VB6 如何連接MYSQL數據庫


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

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM