Imports System.IO
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Butto
n1.Click
Dim sDBFile As String = "E:\myDB.mdb"
Dim sBackUpFile As String = "E:\myDB_BackUp.mdb"
' Backup *.mdb database
If File.Exists(sDBFile) Then
Dim db As New DAO.DBEngine
'CompactDatabase has two parameters, creates a copy of compact DB at the Destination path
db.CompactDatabase(sDBFile, sBackUpFile)
End If
'Restore the original file from the compacted file
If File.Exists(sBackUpFile) Then
File.Copy(sBackUpFile, sDBFile, True)
End If
End Sub
End Class
. Access tuy cũng là h qun tr cơ s d liu nhưng nó khác vi SQL Server là nó còn cho phép xây dng thành
phn giao din gm chung vi d liu + các x lý khác trong cùng tp tin .mdb. Nó nói chung là không phân bit x lý
client - server.
2. Nếu cn thn và chuyên nghiêp hơn ta có th tách làm 2 phn: 1 tp tin cha d liu và các truy vn mang tính
tin x lý và 1 tp tin cha thành thành giao din + các x lý khác. Vi cách làm này ta ch cn sao chép d phòng
đối vi tp tin th nht.
3. Sao chép d phòng đối vi Access tht ra ch là thao tác copy tp tin.
4. Trong VB.Net có th viết đon mã lnh đơn gin như sau (Tôi ví d minh ho bng ng dng loi Console cho đơn
gin trình bày)
Imports System.IO
Module Module1
Sub Main()
Dim f As FileInfo = New FileInfo("C:\Pro_TamHiep.mdb")
f.CopyTo("c:\Pro_TamHiep.bak")
End Sub
End Module
Access không có chc năng restore đúng nghĩa như các h qun tr cơ s d liu cao cp hơn nó như SQL Server,
Oracle....
Tuy nhiên nó có h tr chc năng t sa (menu --> tools --> database utilities --> compact and repair database). Nếu
t sa vn không được thì đành ly bn đã sao chép thay thế bn b hư.
1. m hi u v khái ni m ADO.Net
Trong Net (VB.Net C#) ch t n t i khái ni m ADO.Net ch ko t n t i khái ni m cũ
ADO (c a VB6.)
c b n có th th y đ c ADO.Net Model qua hình d i đây. Có th di n đ t theo ượ ướ
th t
Database--> Conection--> Command--> DataAdapter--> Datatable hay Datasetc
b n làm vi c theo th t này.
2. Namespace c n thi t đ thao tác v i Access ế
Đ thao tác v i Access ta ch c n Imports các namespace sau đây
: Ch n t t c
1. Imports System.Data
2. Imports System.Data.OleDb 's d ng v i access
3.
3. Connect v i Database
Mu n thao tác v i Database dĩ nhn b c đ u tiên ph i t o Connect cho nó. ướ
Ta t o nh sau: ư
- Connect có t m v c c c b trong Form c n khai báo
d file c n k t n i là ế SolieuTest.mdb đ c đ t trong th m c Debug và ượ ư
Password là 123456.
: Ch n t t c
1. Public Class Form1
2. Dim con As OleDbConnection ' C c b trong Form
3.
Private Sub Form1_Load(ByVal sender As System.Object, By
Val e AsSystem.EventArgs) Handles MyBase.Load
4. Dim str As String = "Provider=
Microsoft.Jet.OLEDB.4.0;" _
5. & "Data Source = " &
Application.StartupPath & "\SolieuTest.mdb;"_
6. & "Jet OLEDB:Database Password = 123456"
7. con = New OleDbConnection(str)
8. con.Open()
9. End Sub
10. ...................................
4. Command ( L nh ):
- Đ cho ch ng trình bi t ta c n làm nh ng gì đ i v i Database nh select. ươ ế ư
Insert.................
- Ví d đây command ng đ Select h t t t c d li u trong b ng ra. ế
: Ch n t t c
1. Dim command As New OleDbCommand()
2. command.Connection = con ' K t n iế
3. command.CommandType = CommandType.Text 'Lo i l nh
s d ng Text hay m t query trong access
4. command.CommandText = "Select * From
DanhsachSV" 'L nh c n m v i Database
5.
- Đ s d ng commnand đ c t t các b n c n ph i n m v ng ngôn ng SQL (trong ượ
Box ebooknhi u sách v SQL)
- N p tham s cho command --> Very very Important. Ví d
: Ch n t t c
1. command.CommandText = "Select * From DanhsachSV Where Name
= @Name"
đây ta @Name là tham s mà ta c n ph i đi n giá tr cho nó, ta n g tr nh ư
sau
: Ch n t t c
1. commandInsert.Parameters.Add("@Name",
OleDbType.VarChar).Value = txtName.Text
V y là ta đãn giá tr t Textbox txtName vào tham s @Name r i đó
5. DataAdapter và Dataset, DataTable
- Cng ta đã có Connect và commnand r i, gi chúng ta c n có m t cái máy s
d ng nh ng cái trên đ th c thi l nh mà ta đ a ra --> Đó chính là DataAdapter. ư
- Khai báo m t DataAdapter ch đ n gi n th y ơ ế
: Ch n t t c
1. Dim adapter As New OleDbDataAdapter()
Ngi ra còn c hình th c kh i t o kc, nh ng ch đ c xài v i các lo i command ư ượ
thu c d ng Select và tùy theo cách cng ta c m th y quen thu c nh t
: Ch n t t c
1. OleDbDataAdapter (OleDbCommand)
2. OleDbDataAdapter (StringSelect, OleDbConnection)
3. OleDbDataAdapter (StringSelect, StringConnect)
4.
- Sau khi th c hi n l nh, chúng ta s đ c k t qu tr v nó đ c l u trong ượ ế ượ ư
DataTable i di n cho m t table ) DataSet ( đ i di n cho m t Table Collection).
- L u ý:ư Mu n làm thay đ i d li u ngu n (trên file) thì ta ph i tác đ ng vàoc
DataTable hay Dataset đ ng th i cung c p thêm các câu SQL t ng ng đ th c thi ươ
s thay đ i đó. Chúng ta s i chi ti t v v n đ y trong ph n t i. ế
6. Select d li u
- Đ cho đ n gi n trong q trình h c các đ i t ng sau dt và da b n cho nó có t m ơ ượ
v c c c b trong form (n m chung v i v trí t o connect)
: Ch n t t c
1. 'T o m t đ i t ng Datatable nh n d li u tr v ượ
2. Dim dt As New DataTable("DanhsachSV")
3. 'T o b y DataAdapter th c hi n command
4. Dim da As New OleDbDataAdapter()
- Đ trích xu t m t d li u ra chúng ta ng đo n code sau
- đây chúng tat tr ng h p là đã có s n đo n code t o Connect trên r i ườ
: Ch n t t c
1. Private Sub btnLoad_Click(ByVal sender As System.Object, B
yVal e AsSystem.EventArgs) Handles btnLoad.Click
2. 'T o command đ l y d li u ra ngi
3. Dim command As New OleDbCommand()
4. command.Connection = con ' K t n iế
5. command.CommandType = CommandType.Text 'lo i l nh
s d ng Text hay m t query trong access
6. command.CommandText = "Select * From DanhsachSV"
7. da.SelectCommand = commandn command cho da
8. da.Fill(dt) 'N p d li u o Table
9. DataGridView1.DataSource = dt 'Load d li u lên
DataGridview
10.
11. End Sub
12.
7. Data Binding
- Đôi khi cng ta th y c n k t h p DataGridview các Textbox, đ khi chúng ta ế
click o m t hàng b t kỳ o trên DataGridview thì d li u c a hàng đó s hi n lên
Textbox. Đó là k thu t Data Binding.
- Thêm đo n code sau vào sau đo n code select trên các b n s th y hi u qu
ngay.
: Ch n t t c
1. 'Databinding
2. txtSTT.DataBindings.Add("Text", dt, "STT") đây
ta c n binding textbox txtSTT v i gtr Text c t STT
c a Table
3. txtName.DataBindings.Add("Text", dt, "Name")
4. txtAdress.DataBindings.Add("Text", dt, "Address")
5. txtPhone.DataBindings.Add("Text", dt, "Phone")
6. txtEmail.DataBindings.Add("Text", dt, "Email")
7.
8. Insert m t Row m i vào trong Table
- Đ insert m t Row m i vào File data tr c h t ta c n thêm m t dòng m i vào ướ ế
DataTable hay DataSet.
: Ch n t t c
1. Private Sub btnInsert_Click(ByVal sender As System.Object,
ByVal e AsSystem.EventArgs) Handles btnInsert.Click
2. 'Tao 1 row moi theo c u tc row trong dt
3. Dim row As DataRow = dt.NewRow()
4. row("STT") = txtSTT.Text
5. row("Name") = txtName.Text
6. row("Address") = txtAdress.Text
7. row("Phone") = txtPhone.Text
8. row("Email") = txtEmail.Text
9. dt.Rows.Add(row) ' add row m i này vào dt
10. DataGridView1.DataSource = dt
11. 'Tao command đ update s thay đ i tn o file
data ngu n
12. Dim commandInsert As New OleDbCommand()
13. commandInsert.Connection = con
14. commandInsert.CommandType = CommandType.Text
15. 'SQL for Insert
16. commandInsert.CommandText = "Insert Into
DanhsachSV Values (@STT,@Name,@Address,@Phone,@Email)"