• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

VB.Net và Access Database

Các bài viết hướng dẫn về Visual Basic .NET và C#

Điều hành viên: QUANITGROBEST, tungcan5diop

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 34 time

VB.Net và Access Database

Gửi bàigửi bởi anhtuyenbk » T.Sáu 07/11/2008 9:52 pm

Tên bài viết: VB.Net và Access
Tác giả: Nguyễn Anh Tuyên
Cấp độ bài viết: Beginner
Tóm tắt: Thao tác giữa VB.Net và Access Database


VB.Net và Access Database


Trong những ngày gần đây, diễn đàn nhiều người hỏi về các vấn đề liên quan đến chủ đề này, mặc dù trong diễn đàn đã tồn tại câu trả lời!!!!!!!!!!!!!!
Do đó, mình viết ra Topic này để mọi người ko đặt những câu hỏi như thế nữa và nhưng câu hỏi tương tự như thế này sẽ bị xóa ngay lập tức.
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 hết

  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 hết

  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. ...................................
  11.  
If anything you can't solve, i will solve it :))

Hình đại diện của người dùng
tiger86love102
Thành viên danh dự
Thành viên danh dự
Bài viết: 609
Ngày tham gia: CN 19/10/2008 1:10 am
Đến từ: http://dft.vn
Has thanked: 4 time
Been thanked: 20 time
Liên hệ:

Re: VB.Net và Access Database

Gửi bàigửi bởi tiger86love102 » T.Sáu 07/11/2008 9:59 pm

tiger người hỏi nhiều nhất về vấn đề này xin làm người đầu tiên đọc Topic này của anh Tuyên B-)
Thank anh Tuyên nhiều nha :)
Công ty Công nghệ DFT
facebook.com/tiger86love102

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 34 time

Re: VB.Net và Access Database

Gửi bàigửi bởi anhtuyenbk » T.Sáu 07/11/2008 10:26 pm

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 hết

  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 hết

  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 hết

  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 đó
Sửa lần cuối bởi anhtuyenbk vào ngày T.Bảy 08/11/2008 4:52 pm với 1 lần sửa.
If anything you can't solve, i will solve it :))

HaiPT
VIP
VIP
Bài viết: 245
Ngày tham gia: T.Tư 07/09/2005 4:02 pm
Đến từ: Hải Phòng
Has thanked: 1 time
Been thanked: 12 time
Liên hệ:

Re: VB.Net và Access Database

Gửi bàigửi bởi HaiPT » T.Bảy 08/11/2008 11:01 am

Hì ! sau đợt viết tút hàng loạt thế này thì tớ chuẩn bị ngả nón chào Tuyên thôi! bái phục
Đặc trưng bài viết của Tuyên là trình bày rất công phu, và rất logic :)
VBLUB bây giờ đã mang đậm dấu ấn của Tuyên rồi , chúc mừng
Phạm Hải
Micosoft Technical Expert
FPT Software Coporation

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 34 time

Re: VB.Net và Access Database

Gửi bàigửi bởi anhtuyenbk » T.Bảy 08/11/2008 4:52 pm

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 hết

  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 hết

  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 hết

  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 hết

  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 hết

  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 hết

  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
If anything you can't solve, i will solve it :))

Hình đại diện của người dùng
tiger86love102
Thành viên danh dự
Thành viên danh dự
Bài viết: 609
Ngày tham gia: CN 19/10/2008 1:10 am
Đến từ: http://dft.vn
Has thanked: 4 time
Been thanked: 20 time
Liên hệ:

Re: VB.Net và Access Database

Gửi bàigửi bởi tiger86love102 » T.Bảy 08/11/2008 7:30 pm

Tiếp tục nhé anh Tuyên, thank anh nhìu :D ;)

Mã: Chọn hết

  1.  
  2. txtnv.DataBindings.Add("Text", dt, "Ten_nv")
  3. txtluong.DataBindings.Add("Text", dt, "Muc_luong") 'Muc_luong kiểu Currency
  4. txtthuong.DataBindings.Add("Text", dt, "Thuong")   'Thuong kiểu Currency
  5.  txtung.DataBindings.Add("Text", dt, "Ung")          'Ung kiểu Currency
  6.  

Em thấy anh bảo là cần binding textbox txtSTT với giá trị Text ở cột STT của Table
Có nghĩa là chuyển kiểu dữ liệu của STT trong csdl thành kiểu Text ạ, phải làm thế nào hả anh? binding như thế nào ạ? :-/ Anh nói thêm đoạn này nha, cảm ơn anh :)
Công ty Công nghệ DFT
facebook.com/tiger86love102

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 34 time

Re: VB.Net và Access Database

Gửi bàigửi bởi anhtuyenbk » T.Hai 10/11/2008 8:28 pm

Có code rồi, gõ vô, chạy thử là sẽ biết nó như thế nào thôi, toàn bộ code cho cái Binding rồi đó. >:) >:)
Mục đích của nó nói rõ rồi mà, khi ta click vào đâu trên DataGridView thì thông tin Record sẽ hiện lên các textbox tương ứng :D
Sửa lần cuối bởi anhtuyenbk vào ngày T.Hai 10/11/2008 8:37 pm với 1 lần sửa.
If anything you can't solve, i will solve it :))

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 34 time

Re: VB.Net và Access Database

Gửi bàigửi bởi anhtuyenbk » T.Hai 10/11/2008 8:30 pm

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 hết

  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 hết

  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ả
Sửa lần cuối bởi anhtuyenbk vào ngày T.Tư 02/12/2009 11:23 am với 2 lần sửa.
If anything you can't solve, i will solve it :))

Hình đại diện của người dùng
hoangthu1974
Guru
Guru
Bài viết: 811
Ngày tham gia: T.Năm 09/03/2006 9:30 am
Đến từ: Hà Nội --> Tp. Hồ Chí Minh
Been thanked: 11 time
Liên hệ:

Re: VB.Net và Access Database

Gửi bàigửi bởi hoangthu1974 » T.Ba 11/11/2008 8:59 am

Bác anhtuyenbk viết bài này quá chi tiết thành ra dài dòng. Với việc dùng Parameter, theo ý tôi thấy nó phức tạp hơn việc viết trực tiếp.

OleDBCommand chỉ nên dùng khi Update dữ liệu theo lệnh:
OleDBCommand = New OleDBCommand(strSQL, Connection)
OleDBCommand.ExcutiveNonQuery là được

Còn kết nối:
OleDBDataAdapter = New OleDBDataAdapter(strSQL, Connection)
OleDBDataAdapter.Fill(DataTable)

viết như vậy sẽ đơn giản hơn.

Ngoài ra, để đơn giản trong việc cập nhật nhiều dòng thêm mới, sửa chữa hay xóa, nên dùng DataTable.GetChanges để lấy các dòng thêm mới, sửa chữa hay xóa và thực hiện vòng lặp For.. Next để cập nhật.

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 34 time

Re: VB.Net và Access Database

Gửi bàigửi bởi anhtuyenbk » T.Ba 11/11/2008 9:15 am

Thanks hoangthu1974 đã góp ý, mình viết chi tiết thế là để mọi người học mà :D :D Khi họ hiểu thì có thể tự rút gọn lại được :D
If anything you can't solve, i will solve it :))

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 34 time

Re: VB.Net và Access Database

Gửi bàigửi bởi anhtuyenbk » T.Ba 11/11/2008 9:34 am

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 hết

  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 hết

  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 hết

  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.  
If anything you can't solve, i will solve it :))

Hình đại diện của người dùng
tiger86love102
Thành viên danh dự
Thành viên danh dự
Bài viết: 609
Ngày tham gia: CN 19/10/2008 1:10 am
Đến từ: http://dft.vn
Has thanked: 4 time
Been thanked: 20 time
Liên hệ:

Re: VB.Net và Access Database

Gửi bàigửi bởi tiger86love102 » T.Năm 13/11/2008 7:23 pm

Anh Tuyên ơi anh post tiếp đi anh, anh post những cái đơn giản trước rồi nâng cao hơn B-)
Kết nối csdl rồi, thêm sửa xóa rồi, tiếp đến mấy cái nút back, continnue,..., rồi cả Nút tìm kiếm nữa...
Chắc còn nhiều nữa mà!
Hj hj phiền anh Tuyên nhiều ngại ghê ;)
Thank anh nha ;;) :)
Công ty Công nghệ DFT
facebook.com/tiger86love102

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 34 time

Re: VB.Net và Access Database

Gửi bàigửi bởi anhtuyenbk » T.Năm 13/11/2008 9:05 pm

tiger86love102 đã viết:Kết nối csdl rồi, thêm sửa xóa rồi, tiếp đến mấy cái nút back, continnue,..., rồi cả Nút tìm kiếm nữa...

Back, continue chẳng qua là phép cộng trừ tăng giảm 1 thôi --> tự viết đi >:) >:)
Tìm kiếm thì đó chỉ là SQL, nếu ko dùng cái lệnh dt.Select chế biến điều kiện vô là xong thôi, khỏi viết luôn >:) >:)
Nắm vũng mấy bài trên thì mấy cái này là con kiến thôi >:) >:)
If anything you can't solve, i will solve it :))

Hình đại diện của người dùng
tiger86love102
Thành viên danh dự
Thành viên danh dự
Bài viết: 609
Ngày tham gia: CN 19/10/2008 1:10 am
Đến từ: http://dft.vn
Has thanked: 4 time
Been thanked: 20 time
Liên hệ:

Re: VB.Net và Access Database

Gửi bàigửi bởi tiger86love102 » T.Hai 17/11/2008 5:56 am

Oa chua choa anh Tuyên ơi em buồn ngủ wá, cố hỏi anh câu này nữa rồi em đi ngủ đây, chiều lại đi học.
Tối về xem câu trả lời của anh ;))
Em hỏi là: Để gọi cái câu Query ấy thì cần khai báo ji ko ?
Có cần Dim dt as table ji ko anh ? :-/
Ví dụ em có query tính tiền của tất cả các hàng của khách có tên là ABC chẳng hạn [-(

Mã: Chọn hết

  1.  
  2. Dim dt As New DataTable("tinhtien")       '<==  Khai báo cái này  (*._.*)
  3. Dim da As New OleDbDataAdapter()
  4.  

Mã: Chọn hết

  1.  
  2. Private Sub cmdtinhtien_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuery.Click
  3.         Dim command As New OleDbCommand()
  4.         command.Connection = con
  5.         command.CommandType = CommandType.StoredProcedure
  6.         command.CommandText = "tinhtien" 'Tên của Query
  7.         da.Fill(dt)
  8.         txtketqua.text = ... cái ji đó em chưa biết  [-(  , (kết quả tính đc trong Query)
  9. End Sub
  10.  
  11.  
Công ty Công nghệ DFT
facebook.com/tiger86love102

Hình đại diện của người dùng
thuytrang2542000
Thành viên tích cực
Thành viên tích cực
Bài viết: 155
Ngày tham gia: T.Hai 21/04/2008 3:10 am
Đến từ: TP.HCM
Been thanked: 6 time

Re: VB.Net và Access Database

Gửi bàigửi bởi thuytrang2542000 » T.Năm 20/11/2008 11:28 pm

Mã: Chọn hết

  1.  
  2. Private Sub cmdtinhtien_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdtinhtien.Click
  3.         Dim command As New OleDbCommand("tinhtien",con)
  4.         command.CommandType = CommandType.StoredProcedure
  5.         Dim da as new OleDbdataAdapter(command)
  6.         Dim dt as new DataTable()
  7.         da.Fill(dt)
  8.         txtketqua.text = dt.Rows(0)(0).ToString()
  9. End Sub
  10.  
^^ Nhìn lên thì không bằng ai . Nhìn xuống thì hổng còn ai ngoài mình ^^

Hình đại diện của người dùng
tiger86love102
Thành viên danh dự
Thành viên danh dự
Bài viết: 609
Ngày tham gia: CN 19/10/2008 1:10 am
Đến từ: http://dft.vn
Has thanked: 4 time
Been thanked: 20 time
Liên hệ:

Re: VB.Net và Access Database

Gửi bàigửi bởi tiger86love102 » T.Bảy 22/11/2008 2:40 am

tiger cảm ơn Trang nhiều nha :)
Một điều hiển nhiên là với mỗi một trường hợp cụ thể lại phải khai báo một kiểu biến nào đấy, mỗi kiểu biến lại có nhiều cách khai báo, cách sử dụng... Toàn là những cái có sẵn trong VB, viết vài chữ là nó hiện ra ngay thế nhưng mình chẳng biết cái nào dùng cho công việc ji.
Mấy cái này có thể nói là khó vậy, nhiều cái lằng nhằng hơn nữa mà chỉ nhìn sơ qua mình chẳng biết nó là cái ji, ko thể hiểu............. [-(
Nghĩ đến đây mà nản, mà quẫn, chán lắm [-( , sao mà uất ức chạnh lòng quá..... :( ..... nhớ mẹ
Ngồi buồn bậy bạ vài dòng tâm sự các bạn đừng để ý nhé [-(
Công ty Công nghệ DFT
facebook.com/tiger86love102

AnhGaWe02
Bài viết: 5
Ngày tham gia: T.Tư 04/02/2009 10:32 am

Re: VB.Net và Access Database

Gửi bàigửi bởi AnhGaWe02 » T.Hai 16/02/2009 11:47 am

Mình nghỉ sao ko tạo class cho dễ sử dụng vậy anh Thanh, Thanh có dùng cách tạo class ko. Ví dụ như 1 class XL_bang để lưu chứa các hàm Ket_noi để kết nối dữ liệu chẳng hạn. Khi cần sử dụng thì gọi xài thôi :D.

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 34 time

Re: VB.Net và Access Database

Gửi bàigửi bởi anhtuyenbk » T.Hai 16/02/2009 11:51 am

Mình chỉ viết bài hướng dẫn các thao tác với cơ sở dữ liệu thôi. :D :D
Còn các bạn nếu muốn viết class thì phải tự dựa vào những cái trên, kiến thức về class của bạn mà viết lại :D :D
Mình ko có thời gian để làm việc đó. :D :D
If anything you can't solve, i will solve it :))

phong25_2
Bài viết: 2
Ngày tham gia: T.Hai 02/03/2009 12:41 pm

Re: VB.Net và Access Database

Gửi bàigửi bởi phong25_2 » T.Hai 02/03/2009 4:55 pm

em tạo 1 file mdb và thử update nhưng ko được. nó báo lỗi là " cannot find column [mssv] "
Dim row As DataRow = dt.Select("mssv = " & mssv.Text)(1)
please help me

Hình đại diện của người dùng
tungcan5diop
Cựu chiến binh
Cựu chiến binh
Bài viết: 1123
Ngày tham gia: T.Tư 24/09/2008 4:04 pm
Đến từ: TPHCM
Has thanked: 1 time
Been thanked: 28 time

Re: VB.Net và Access Database

Gửi bàigửi bởi tungcan5diop » T.Ba 03/03/2009 10:33 am

phong25_2 đã viết:em tạo 1 file mdb và thử update nhưng ko được. nó báo lỗi là " cannot find column [mssv] "
Dim row As DataRow = dt.Select("mssv = " & mssv.Text)(1)
please help me

Mã: Chọn hết

  1. --bạn xem lại trong CSDL của bạn đã có trường [mssv] chưa
  2.  Dim row As DataRow = dt.Select("mssv  = " & mssv.Text)(1)---->viết sai rồi
  3. Dim row As DataRow = dt.Select("mssv='"+  mssv.Text +"'")-->viết lại nè
Hỡi thế gian bug(lỗi) là gì?
Mà sửa...hoài không hết!


Quay về “[.NET] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách