Windows Việt

Cộng Đồng Công Nghệ Thông Tin Việt

Trang ChínhTrang Chính  Sự kiện  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Share
 
 tài liệu tham khảo cách kết nối, insert,delete...từ VB qua access
Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
KySyRong
Member

KySyRong
Member
Giới tính : Nam
Tuổi : 29
Posts Posts : 631
Coins Coins : 1810
Thanked Thanked : 102
tài liệu tham khảo cách kết nối, insert,delete...từ VB qua access Empty

tài liệu này mình chỉ sưu tầm! với mong muốn các bác chưa hiểu rõ cũng như chưa bik tham khảo! các bác pro đừng cười nhé! chẳng qua em chỉ là gà
Nguồn : câu lạc bộ VB.NET
1. Tìm hiểu về khái niệm ADO.Net
Trong Net (VB.Net và 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á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ự là
Database--> Conection--> Command--> DataAdapter--> Datatable hay Dataset và các bạn làm việc theo thứ tự này.

connect.jpg



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

Mã: 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ĩ nhiên bước đầu tiên là 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
Ví dụ file cần kết nối là SolieuTest.mdb được đặt trong thư mục Debug và có Password là 123456.

Mã: 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, ByVal e As System.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 là command dùng để Select hết tất cả dữ liệu trong bảng ra.

Mã: 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 là Text hay là một query trong access
4. command.CommandText = "Select * From DanhsachSV" 'Lệnh cần là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 ebook có nhiều sách về SQL)
- Nạp tham số cho command --> Very very Important. Ví dụ

Mã: Chọn tất cả

1. command.CommandText = "Select * From DanhsachSV Where Name = @Name"


Ở đây ta có @Name là tham số mà ta cần phải điền giá trị cho nó, ta gán giá trị như sau

Mã: Chọn tất cả

1. commandInsert.Parameters.Add("@Name", OleDbType.VarChar).Value = txtName.Text


Vậy là ta đã gán giá trị từ Textbox txtName vào tham số @Name rồi đó

5. DataAdapter và Dataset, DataTable
- Chúng 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ế này

Mã: Chọn tất cả

1. Dim adapter As New OleDbDataAdapter()


Ngoài ra còn các hình thức khởi tạo khác, nhưng chỉ được xài với các loại command thuộc dạng Select và tùy theo cách mà chúng ta cảm thấy quen thuộc nhất

Mã: 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ó được kết quả trả về và nó được lưu trong DataTable (đại diện cho một table ) và 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ào các 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ẽ nói chi tiết về vấn đề này trong phần tới.
6. Select dữ liệu
- Để cho đơn giản trong quá 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)

Mã: 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ộ má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 dùng đoạn code sau
- Ở đây chúng ta xét trường hợp là đã có sẵn đoạn code tạo Connect ở trên rồi

Mã: Chọn tất cả

1. Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
2. 'Tạo command để lấy dữ liệu ra ngoài
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 là Text hay là một query trong access
6. command.CommandText = "Select * From DanhsachSV"
7. da.SelectCommand = command ‘ gán command cho da
8. da.Fill(dt) 'Nạp dữ liệu vào Table
9. DataGridView1.DataSource = dt 'Load dữ liệu lên DataGridview
10.
11. End Sub
12.



7. Data Binding
- Đôi khi chúng ta thấy cần kết hợp DataGridview và các Textbox, để khi chúng ta click vào một hàng bất kỳ nà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.

Mã: Chọn tất cả

1. 'Databinding
2. txtSTT.DataBindings.Add("Text", dt, "STT") ‘ Ở đây ta cần binding textbox txtSTT với giá trị 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.

Mã: Chọn tất cả

1. Private Sub btnInsert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInsert.Click
2. 'Tao 1 row moi theo cấu trúc 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 trên và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)"
17. 'Nap tham so cho các command trên
18. commandInsert.Parameters.Add("@STT", OleDbType.Numeric, 50, "STT") ' Nạp giá trị cho tham số @STT thông qua giá trị của cột nguồn STT
19. commandInsert.Parameters.Add("@Name", OleDbType.VarChar, 50, "Name")
20. commandInsert.Parameters.Add("@Address", OleDbType.VarChar, 50, "Address")
21. commandInsert.Parameters.Add("@Phone", OleDbType.VarChar, 50, "Phone")
22. commandInsert.Parameters.Add("@Email", OleDbType.VarChar, 50, "Email")
23. 'Dùng da để áp đặt sự thay đổi trên vào File data nguồn
24. da.InsertCommand = commandInsert 'gán command
25. da.Update(dt)
26.
27. End Sub

9. Update (chỉnh sửa một Record)
Để chính sửa một Record thì trước tiên bạn phải xác định được Record đó ở đâu trong Database cái đã --> Xác định nó thông qua Primary Key.
Ví dụ bạn có giao diện như sau

listbox.jpg



Bạn thấy rằng ta có Primary key ở đây là STT, và khi bạn click vào DataGridview là ta đã lấy được thông tin của Record hiện thời rồi.
Vậy đoạn code để Update một record như sau

Mã: Chọn tất cả

1. Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
2. 'Get Record can update trong Table
3. Dim row As DataRow = dt.Select("STT = '" & Convert.ToInt32(txtSTT.Text) & "'")(0)
4. 'Update row
5. row.BeginEdit()
6. row("Name") = txtName.Text
7. row("Address") = txtAddress.Text
8. row("Phone") = txtPhone.Text
9. row("Email") = txtEmail.Text
10. row.EndEdit()
11. 'Tao command để update sự thay đổi trên vào file data nguồn
12. Dim commandUpdate As New OleDbCommand()
13. commandUpdate.Connection = con
14. commandUpdate.CommandType = CommandType.Text
15. 'SQL for Update
16. commandUpdate.CommandText = "Update DanhsachSV Set Name=@Name, Address=@Address, Phone=@Phone, Email=@Email Where STT=@STT"
17. 'Nap tham so cho các command trên
18. commandUpdate.Parameters.Add("@Name", OleDbType.VarChar, 20, "Name")
19. commandUpdate.Parameters.Add("@Address", OleDbType.VarChar, 20, "Address")
20. commandUpdate.Parameters.Add("@Phone", OleDbType.VarChar, 20, "Phone")
21. commandUpdate.Parameters.Add("@Email", OleDbType.VarChar, 20, "Email")
22. commandUpdate.Parameters.Add("@STT", OleDbType.Integer, 20, "STT")
23. 'Dùng da để áp đặt sự thay đổi trên vào File data nguồn
24. da.UpdateCommand = commandUpdate 'gán command
25. 'Dim a As New OleDbCommandBuilder(da)
26. da.Update(dt)
27. End Sub



10. Delete 1 Record
- Xóa một Record cũng tương tự như Update chỉ khác phần SQL và tham số .
- Đây là cái dễ nhất

Mã: Chọn tất cả

1. Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
2. 'Get Record can update trong Table
3. Dim row As DataRow = dt.Select("STT = '" & Convert.ToInt32(txtSTT.Text) & "'")(0)
4. row.BeginEdit()
5. row.Delete()
6. row.EndEdit()
7. 'Tao command để update sự thay đổi trên vào file data nguồn
8. Dim commandDelete As New OleDbCommand()
9. commandDelete.Connection = con
10. commandDelete.CommandType = CommandType.Text
11. 'SQL for Delete
12. commandDelete.CommandText = "Delete From DanhsachSV Where STT=@STT"
13. 'Nap tham so cho các command trên
14. commandDelete.Parameters.Add("@STT", OleDbType.Numeric, 20, "STT")
15. 'Dùng da để áp đặt sự thay đổi trên vào File data nguồn
16. da.DeleteCommand = commandDelete 'gán command
17. End Sub
18.


- Chú ý : Để xóa hết tất cả Record trong bản ta chỉ cần dùng SQL sau “Delete From DanhsachSV” . Các bạn thấy ko có còn tham số nào cả --> ko cần truyền thêm giá trị gì cả

11. Insert, Update, Delete theo kiểu Mì Ăn Liền
- Chắc các bạn đều thấy rằng, trong các phần Insert, Update, Delete ở trên khá phức tạp đòi hỏi phải luyện tập thường xuyên mới có thể thành thạo cũng như nắm vững SQL.
- Do đó, Net cung cấp sẵn cho ta một đối tượng cho phép ta ko cần phải mất công sức để viết lại những cái trên - áp dụng tốt cho đa số trường hợp nhưng tốc độ dĩ nhiên là kém hơn cách viết trên một chút.
Đơn giản các bạn chỉ cần thêm một dòng code này vào và loại bỏ tất cả các command Insert, Update, Delete.
Ví dụ Update: các bạn sẽ thấy quá trình sẽ đơn giản đi rất nhiều

Mã: Chọn tất cả

1. Dim MiAnLien As New OleDbCommandBuilder(da) ' Nó ở đây nè sẽ làm giúp ta làm mọi việc
2. 'Get Record can update trong Table
3. Dim row As DataRow = dt.Select("STT = " & Convert.ToInt32(txtSTT.Text))(0)
4. 'Update row
5. row.BeginEdit()
6. row("Name") = txtName.Text
7. row("Address") = txtAddress.Text
8. row("Phone") = txtPhone.Text
9. row("Email") = txtEmail.Text
10. row.EndEdit()
11. ‘Update dữ liệu
12. da.Update(dt)
13.

- Insert, Delete thì cũng tương tự thôi, các bạn hãy tự làm.

12. Gọi thực thi một Query có sẵn trong file Access
- Ví dụ bạn mở file access của bạn ra click vào Tab Queries và viết một Query tên là QuerySelect (xin nhắc lại query này ở trong file access ko phải ta viết ở trong chương trình)

Mã: Chọn tất cả

1. SELECT *
2. FROM DanhsachSV
3. WHERE STT>[@STT];
4.


- Bạn đang thắc mắc là làm sao ta có thể gọi thực thi query này từ chương trình và nhận kết quả trả về từ nó, cũng như làm sao nạp giá trị cho tham số @STT trong query trên
- Để làm điều này thật đơn giản, ta dùng command mà thôi

Mã: Chọn tất cả

1. Private Sub btnQuery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuery.Click
2. Dim command As New OleDbCommand()
3. command.Connection = con
4. command.CommandType = CommandType.StoredProcedure ' Xác định ta đang gọi query trong file access
5. command.CommandText = "QuerySelect" 'Tên của Query
6. command.Parameters.Add("@STT", OleDbType.Numeric).Value = 5 'Nạp giá trị cho tham số @STT
7. 'Nạp command trên vào DataAdapter tùy theo dạng của command là Select, insert, update hay delete
8. da.SelectCommand = command
9. dt.Clear() 'Xóa dữ liệu cũ
10. da.Fill(dt)
11. DataGridView1.DataSource = dt
12. End Sub
13.




tài liệu tham khảo cách kết nối, insert,delete...từ VB qua access 25187d6224a7bb5e1bfc63c343674e93-6dtài liệu tham khảo cách kết nối, insert,delete...từ VB qua access A40781094019c430061d4344243f3374-1tài liệu tham khảo cách kết nối, insert,delete...từ VB qua access 25187d6224a7bb5e1bfc63c343674e93-6d
-----------------------------------------------------------------------
cảm ơn đời mỗi sáng mai thức dạy cho ta thêm này nữa để yêu thương

※ Bài viết cùng chuyên mục


 
tài liệu tham khảo cách kết nối, insert,delete...từ VB qua access
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Windows Việt :: Lưu Trữ :: Lưu Trữ - Các môn học cũ :: Lập Trình Ứng Dụng Quản Lý 1-
[Windows Việt] Deverloped by Nguyễn Gia Phú - https://windows.forumvi.com
Powered by © Forumotion.com - phpBB™ version ©phpBB2
Go to top Go to bottom