Sử dụng VB.NET để kết nối mySQL

Font size: Decrease font Enlarge font

Code-now.com: Sử dụng VB.NET để kết nối MySQL Yêu cầu:
- MySQL 5.0.27
- My SQL Connector/Net 5.0.3
- Toad for MySQL Freeware 2.0.3
- VB.NET 2005 Express Edition

Phần I. Định nghĩa ConnectionString
Những ai đã quen với lập trình .NET khi sử dụng ADO để kết nối với CSDL cũng đã rất quen thuộc với cụm từ Connection String. Đúng ra, trong lập trình ConnectionString là thuộc tính của đối tượng ADO Connection. Với MySQL cũng vậy, một số thông số truyền vào chuỗi định nghĩa kết nốivới CSDL gần như giống hoàn toàn với ADO.NET; tuy nhiên chúng ta không sử dụng ADO.NET mà là MySQL Connector.
Ví dụ:
Dim MySQLConnectionString As String
MySQLConnectionString = “Server=myServer;” & _
“Database=myDatabase;” & _
“Uid=myUserID;” & _
“Pwd=myPassword;” & _
“Connect Timeout=30;”

Vi dụ trên đây không bao gồm thông số Persist Security Info và mặc định giá trị PSI là false; bất cứ thông số nào trong chuỗi ConnectionString mà thiếu đều mang giá trị mặc định.
Một đối tượng dùng để kết nối với CSDL phải được khởi tạo và mở kết nối. Tuy nhiên, có nhiều cách khai báo khác nhau sẽ nảy sinh những vấn đề vể bộ nhớ.
Ví dụ:
Dim MySQLConnectionString As String
Dim MyADOConnection As MySqlConnection
MySQLConnectionString = “Server=myServer;” & _
“Database=myDatabase;” & _
“Uid=myUserID;” & _
“Pwd=myPassword;” & _
“Connect Timeout=30;”
MyADOConnection = New MySqlConnection(MySQLConnectionString)
MyADOConnection.Open()

Ví dụ trên sẽ gửi lệnh connect thông qua phương thức khởi tạo của 9ối tượng MySQlConnection; nếu như chưa có connection nào được tạo thì phương thức Open làm nhiệm vụ tạo ra một connection mới; nếu như đã có rồi thì hàm open sẽ lấy một connection có sẵn trong danh sách connection available.
Dim MySQLConnectionString As String
Dim MyADOConnection As MySqlConnection
MySQLConnectionString = “Server=myServer;” & _
“Database=myDatabase;” & _
“Uid=myUserID;” & _
“Pwd=myPassword;” & _
“Connect Timeout=30;”
MyADOConnection = New MySqlConnection()
MyADOConnection.ConnectionString = MySQLConnectionString
MyADOConnection.Open()

Ví dụ trên đây sẽ tạo một Connection hoàn toàn mới vì khi khởi tạo không gán thuộc tính ConnectionString cho đối tượng mySQL Connection; Do đó không thể lấy trong sanh sách các connection có sẵn được. Chỉ khi phương thức Open được gọi thì câu lệnh MyADOConnection.ConnectionString = MySQLConnectionString mới được sử dụng.

Lưu ý: Cái này cực kỳ quan trọng và cực kỳ hay, khi lập trình chú ý đến vấn đề sử dụng ConnectionString. Tuyệt đối kông nên nhúng ConnectionString vào trong code vì rất khó nâng cấp và không an toàn chút nào. Có 2 lý do chính:

  1. Hacker có thể lợi dụng các lỗi bảo mật của MySQL để thay thế chuổi ConnectionString vì chuỗi này đã được đóng gói lại một dòng duy nhất. Bằng cách nào đó hacker sẽ cộng dồn biến ConnectionString với một chuỗi nào đó mà MySQL dễ dàng pass qua các lỗi hoặc chỉ trả về kết quả thực thi câu lệnh sau cùng…
  2. Khó bảo trì vì nếu một trongc ác thông số của câu lệnh connectionstring thay đổi bạn phải biên dịch lại hoàn toàn bộ code, thật là phiền phức.

Có môt cách mà bạn có thể an tâm giao phó việc bảo mật cho các nhà quản lý host hoặc admin đó là đưa câu lệnh này vào file cấu hình (web.config) ; do đó khi có thay đổi bất kỳ thông số nào cũng có thể thay đổi không cần biên dịch lại.

<CONNECTIONSTRINGS>
<ADD name=”MySQLConnectionString . My . MySettings . MySQLConnectionString
connectionString=” Server=’xxx; Database=xxx; Uid=xxx; Pwd=xxx;”‘ />
</CONNECTIONSTRINGS>
Khi đó muốn sử dụng chỉ cần khai báo như sau:
Dim mMySQLConnectionString As String = My.Settings.MySQLConnectionString
Dim mMySQLConnectionString As String = My.Settings.MySQLConnectionString
Dim MyADOConnection As New MySqlConnection
MyADOConnection.ConnectionString = MySQLConnectionString
MyADOConnection.Open()

Thế là xong phần khai báo kết nối CSDL

Tags: , ,

Add to: Add to your del.icio.us Digg this story Add to your Twitter Add to your Google Bookmark Add to your Facebook Add to your MySpace
Số lượt xem: 1069

Gửi nhận xét:comment

 *
 *