Lập trình Visual Basic .NET với CSDL *.mdb

Các bạn cần tạo một:
– Form gồm 2 text box (Họ, Tên) và 3 button (Nhập, Thay đổi, Xóa)
– File CSDL vidu.mdb có 1 table tên là dshocsinh gồm 2 field là HO và TEN
– Nhập thông tin vào 2 text box trên, sau đó nhấn nút “Nhập”, chương trình sẽ ghi dữ liệu vào file CSDL, tương ứng với 2 field HO và TEN. Tương tự như thế với nút lệnh Thay đổi và Xóa.

Để truy xuất database trong VB .Net (hay VC#, VJ#), bạn có thể dùng các đối tượng ODBC .Net như sau: OdbcConnection, OdbcCommand, OdbcDataReader. Qui trình điển hình để xây dựng ứng dụng xử lý datbase theo yêu cầu của bạn như sau:

1. Dùng Access (hay bất kỳ ứng dụng nào) tạo file database (thí dụ tên là c:vidu.mdb) có chứa ít nhất 1 table tên là dshocsinh, mỗi record của table này có 3 field: codeID, Ho, Ten. Lưu ý chúng tôi thêm field codeID để làm khóa chính, vì field “Họ” hay field “Tên” không thích hợp với vai trò khóa chính.

2. Chạy Control panel –> Administrator Tools —> Data Source —-> System DSN chọn Add và định nghĩa 1 DSN với tên là “DSNVidu” liên kết với file c:vidu.mdb vừa tạo được ở bước 1.

3.
Chạy Microsoft Visual Studio 200x, tạo 1 project VB .Net mới rồi thiết kế trực quan Form ứng dụng như sau:
Ba textbox có tên lần lượt là txtCodeID, txtHo, txtTen. 4 button lệnh có tên lần lượt là btnAdd, btnUpdate, btnDelete, btnExit.

4.
Tạo các thủ tục xử lý sự kiện click chuột vào 4 button lệnh rồi viết code cho chúng trong Form như sau:

//nhập thư viện ODBC .Net
Imports System.Data.Odbc
//code của Form ứng dụng
Public Class Form1
//khai báo các thuộc tính cần dùng

Dim MyConString As String
Dim MyConnection As OdbcConnection
Dim MyCommand As OdbcCommand
Dim MyDataReader As OdbcDataReader

//thủ tục khởi động form
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try

//Connection string dùng DSN và ODBC Provider
MyConString = “DSN=DSNVidu”
//hoặc Connection string dùng trực tiếp Provider Microsoft.Jet.OLEDB
MyConString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:vidu.mdb”
//tạo 1 connection đến database
MyConnection = New OdbcConnection(MyConString)
MyConnection.Open()

//’Tạo đối tượng Command kết hợp với database
MyCommand = New OdbcCommand
MyCommand.Connection = MyConnection

//Catch ODBC Exception
Catch MyOdbcException As OdbcException
MsgBox(MyOdbcException.ToString)

//Catch program exception
Catch MyException As Exception
MsgBox(MyException.ToString)
End Try
End Sub

//thủ tục click button Nhập
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNhap.Click
MyCommand.CommandText = “SELECT * FROM dshocsinh where CodeId = ‘” & txtCodeID.Text & “‘”
MyDataReader = MyCommand.ExecuteReader()

//kiểm tra xem CodeID cần thêm có chưa
If Not MyDataReader.Read() Then
//Nếu chưa có thì thêm 1 record mới
MyDataReader.Close()
MyCommand.CommandText = “INSERT INTO dshocsinh VALUES(‘” & txtCodeID.Text & “‘,'” & txtHo.Text & “‘,'” & txtTen.Text & “‘)”
MyCommand.ExecuteNonQuery()
Else
MsgBox “CodeID đã có rồi, hãy thay đổi giá trị khác”
End If
MyDataReader.Close()
End Sub

//thủ tục cập nhật record
Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
//kiểm tra xem CodeID cần cập nhật có chưa
MyCommand.CommandText = “SELECT * FROM dshocsinh where CodeId = ‘” & txtCodeID.Text & “‘”
MyDataReader = MyCommand.ExecuteReader()

If MyDataReader.Read() Then
//nếu có rồi thì cập nhật record tương ứng
MyDataReader.Close()
MyCommand.CommandText = “UPDATE dshocsinh SET Ho='” & txtHo.Text & “‘, Ten='” & txtTen.Text & “‘ ” & “WHERE codeID = ‘” & txtCodeID.Text & “‘”
MyCommand.ExecuteNonQuery()
Else
MsgBox “CodeID chưa tồn tại, không thể cập nhật record”
End If
MyDataReader.Close()
End Sub

//thủ tục xóa record
Private Sub btnDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnDelete.Click
//kiểm tra xem CodeID cần xóa có chưa
MyCommand.CommandText = “SELECT * FROM dshocsinh where CodeId = ‘” & txtCodeID.Text & “‘”
MyDataReader = MyCommand.ExecuteReader()
If MyDataReader.Read() Then

//nếu có thì delete record tương ứng
MyDataReader.Close()
MyCommand.CommandText = “Delete from dshocsinh WHERE codeID = ‘” & txtCodeID.Text & “‘”
MyCommand.ExecuteNonQuery()
Else
MsgBox “CodeID chưa tồn tại, không thể xóa record”
End If
MyDataReader.Close()
End Sub

//thủ tục đóng Form (dừng ứng dụng)
Private Sub btnExit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExit.Click
MyConnection.Close()
End Sub
End Class

5. Chạy thử ứng dụng bằng menu Debug.Start Debugging, nếu không có lỗi thì chương trình sẽ đáp ứng đúng theo yêu cầu đã đặt ra. Lưu ý rằng để xóa 1 record, bạn chỉ cần nhập vào thông tin khóa chính của record đó (trong trường hợp của bạn là CodeID).