Click vào để xem chi tiết
Click vào để xem chi tiết
Click vào để xem chi tiết
Click vào để xem chi tiết
Click vào để xem chi tiết
Truy cập hôm qua:
2230
Truy cập hôm nay:
1718
Tổng lượt truy cập:
2973188
 
Website chính thức của Aptech Việt nam - FPT Aptech, Hà nội Aptech, Bách khoa Aptech, Mekong Delta Aptech, Hải phòng Aptech, CNC Aptech, Softech Aptech, Huế Aptech, Quy nhơn Aptech, Hưng yên Aptech, Thanh hoá Aptech, Thành đoàn Aptech, Nghệ an Aptech, Vũng tàu Aptech, Cà mau Aptech, Nam định Aptech, Aprotrain Aptech, Tiền giang Aptech, Haui Aptech, Trí việt Aptech, AiTi Aptech, An giang Aptech, Hùng vương Aptech, Thăng long Aptech, Aptech Nam Sài Gòn
July 29, 2010, 8:45 PM
Công nghệ

  • Đọc dữ liệu Access vào ListBox của VB.NET

  • Hỏi: Em lập trình VB.NET với CSDL là Access. Xin chỉ giúp em làm cách nào để dùng câu lệnh SQL đưa từng phần bản ghi vào ListBox. Ví dụ như lúc đầu có 10 bản ghi hiển thị trong ListBox, khi click chuột thì 10 bản ghi tiếp theo sẽ được đưa vào tiếp.

    Đáp: Trong VB.NET, để truy cập cơ sở dữ liệu (CSDL), bà con phải xài các lớp trong System.Data.DLL. Các lớp này được chia (căn cứ vào chức năng) thành nhiều namespace, trong đó có 2 namespace tương tự nhau là System.Data.OleDb (nối với nguồn dữ liệu OLE DB, như Microsoft Access hoặc Visual Foxro) và System.Data.SqlClient (sử dụng nguồn dữ liệu Microsoft SQL Server 7.0 hoặc cao hơn).
    Như vậy để dùng CSDL Access, phải xài namespace System.Data.OleDb. Trong namespace này, các lớp bà con mình khoái xài nhất là:
    OleDbConnection: nối kết đến nguồn dữ liệu OLE DB.
    OleDbCommand: thực thi các câu lệnh SQL đối với cơ sở dữ liệu OLE DB.
    OleDbDataReader. đọc dữ liệu được trả về từ đối tượng OleDbCommand (sau khi đã xài hai lớp trên để truy xuất nguồn dữ liệu OLE DB).
    Bây giờ, bà con hãy xúm vào thử đọc nguồn dữ liệu Access, đưa vào ListBox cho... vui nhé!
    Đương nhiên bà con phải mở VB.NET rồi tạo một dự án Windows Application. Căn cứ vào bảng 1 và hình 1, bà con đặt để các thuộc tính cho biểu mẫu Form1 cùng các ô điều khiển trên nó (một nút lệnh và một ô danh sách). Xong xuôi, bà con mở cửa sổ Code của biểu mẫu frmADONet để gõ các đoạn mã.

    Bảng 1: Các ô điều khiển cần thiết kế

    Ô điều khiển

    Thuộc tính

    Trị

    Form

    Name

    frmADONet

    ListBox

    Name

    lstEmployees

    Button

    Name

    Button1

    Text

    Đọc lần nữa

    Hình 1: Biểu mẫu ví dụ

    Cụ thể, bà con thêm vào ngay trước và sau dòng Public Class frmADONet các dòng lệnh để thu được đoạn mã 1. Sau đó, gõ đoạn mã 2 vào thủ tục xử lý tình huống Load của biểu mẫu. Cuối cùng là đoạn mã 3, xử lý tình huống Click của nút lệnh Button1.
    Đoạn mã 1:
    Imports System.Data.OleDb
    Public Class frmADONet
    Inherits System.Windows.Forms.Form
    Dim myAccessConnection As OleDbConnection
    Dim dbReader As OleDbDataReader
    Dim dbCmd As OleDbCommand = New _
    OleDbCommand("SELECT Employees.FirstName,Employees.LastName FROM Employees")
    Dim nSoBanGhi As Integer = 2
    Dim I As Integer, lDayDuRoi As Boolean
    Đoạn mã 2:
    Private Sub frmADONet_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles MyBase.Load
    Try
    myAccessConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=D:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB")
    myAccessConnection.Open()
    dbCmd.Connection = myAccessConnection
    dbReader = dbCmd.ExecuteReader(CommandBehavior.SingleResult)
    Catch ex As Exception
    MsgBox(ex.Message)
    End Try
    End Sub
    Đoạn mã 3:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Try
    lDayDuRoi = False
    I = 0
    Do While (dbReader.Read())
    lstEmployees.Items.Add(dbReader.GetString(0) & " " & dbReader.GetString(1))
    I = I + 1
    If (I >= nSoBanGhi) Then
    lDayDuRoi = True
    Exit Do
    End If
    Loop
    If Not lDayDuRoi Then
    MsgBox("Đã hết thông tin cần đọc rồi !")
    End If
    Catch ex As Exception
    MsgBox(ex.Message)
    End Try
    End Sub
    Ví dụ của ta "chôm" CSDL có sẵn của Access (hoặc Visual Basic) mang tên Northwind.MDB (có thể mang tên khác là NWIND.MDB). Nội dung dữ liệu gồm hai cột FirstNameLastName của bảng Employees.
    Thủ tục xử lý tình huống Load của biểu mẫu mần công việc xử lý lệnh SQL để mang kết quả truy vấn (query) về cho đối tượng OleDbDataReader có tên dbReader, sẵn sàng để mỗi khi bà con “bộp” vào nút Button1 thì chỉ cần moi dữ liệu từ đây, nhét vào ô danh sách.
    Tui sử dụng biến nSoBanGhi để xác định mỗi lần đọc tối đa là bao nhiêu bản ghi (ví dụ này là 2). Biến lDayDuRoi để xác định xem còn bản ghi nào trong dbReader nữa không.
    Chương Can Chíp
    (Theo Echip)


  • BẢO MẬT MÁY TÍNH BẰNG VISUAL BASIC (15/08/2005)
  • WGA của Microsoft bị hacker qua mặt (14/08/2005)
  • Sử dụng Regular Expression - kiểm tra tính hợp lệ của e-mail với PHP (13/08/2005)
  • Asp2php Tool (01/08/2005)
  •  
    Click vào để xem chi tiết
    Click vào để xem chi tiết
    Click vào để xem chi tiết
    Click vào để xem chi tiết
    Download bài hát Aptech: Lời Việt + Lời Anh (Karaoke)
    Click vào để xem chi tiết
    Tổng lượt truy cập: 2973188
    Website chính thức của Aptech Vietnam
    Xem tốt nhất ở độ phân giải 800 x 600 với IE6.0 trở lên