Kết nối cơ sở dữ liệu Microsoft Access và Điền DataGridView

Như trong bài trước sensilla nhiều, và với rất ít mã, chúng tôi sẽ xem làm thế nào để kết nối trong mạng lưới hình ảnh cơ bản với một tập tin cơ sở dữ liệu trong Microsoft Access và sau đó lấy dữ liệu từ một trong các hội đồng DataGridView đầy với họ.

Điều đầu tiên cần làm là nhập khẩu hai không gian tên như trong hình:

 Nhập khẩu System.Data
 Nhập khẩu System.Data.OleDb

Đối với ví dụ này, chúng tôi sẽ sử dụng một hình thức với một nút (Button1) và DataGridView (DataGridView1). Trong sự kiện click của button1 - một bản sao mã sau và tên của cơ sở dữ liệu MDB và tên bảng trong câu lệnh SELECT ) để tất cả mọi thứ hoạt động tốt.

 Dim cnn As New OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C: \ myBaseAccess.mdb; ID người dùng admin, mật khẩu =;")

 Dim da New OleDbDataAdapter ("SELECT * FROM Products", cnn)
 Dim ds As New DataSet

 da.Fill (ds)

 DataGridView1.DataSource = ds.Tables (0)

Vâng, thực sự không có nhiều để giải thích ... bạn tạo một kết nối (CNN), sau đó một DataAdapter (da) có như một tham số tuyên bố để lấy dữ liệu ( SELECT ) và kết nối để sử dụng (cnn). Nếu bạn muốn chọn chỉ có một số hồ sơ cần thêm một điều kiện ở đâu các tuyên bố chọn.

Trong những dòng sau đây, chúng tôi sẽ để lại một số định nghĩa ngắn gọn trong trường hợp bất kỳ của bạn là cần thiết và để tìm hiểu thêm về các tùy chọn khác nhau để tạo ra một kết nối với Microsoft Access để lại các liên kết sau đây: http://www.connectionstrings.com/access

DataAdapter

Đại diện một tập hợp các câu lệnh SQL và kết nối cơ sở dữ liệu được sử dụng để điền vào DataSet và cập nhật các nguồn dữ liệu.
DataAdapter phục vụ như một cầu nối giữa DataSet và một nguồn dữ liệu để lấy và lưu trữ dữ liệu. Để hoạt động như một cây cầu, DataAdapter Điền được chỉ định phương pháp, sửa đổi các dữ liệu của DataSet để phù hợp với nguồn dữ liệu, và gán các phương pháp cập nhật, sửa đổi dữ liệu trong nguồn dữ liệu trùng hợp với những người DataSet.

DataSet

Đại diện một bộ nhớ cache bộ nhớ dữ liệu. Nó là một thành phần cơ bản của kiến ​​trúc ADO.NET. DataSet bao gồm một bộ sưu tập của các đối tượng DataTable.

DataTable

Đại diện một bảng dữ liệu trong bộ nhớ.
DataTable là một đối tượng trung tâm của thư viện ADO.NET. Trong số các đối tượng sử dụng DataTable và DataView DataSet.

Khi truy cập vào đối tượng DataTable, bạn phải ghi nhớ rằng đây là những trường hợp nhạy cảm có điều kiện. Ví dụ, nếu một DataTable được đặt tên là "mydatatable" và "Mydatatable" khác, các chuỗi được sử dụng để tìm kiếm một trong các bảng được coi là trường hợp nhạy cảm. Tuy nhiên, nếu có là "mydatatable" nhưng không có "Mydatatable" được coi là chuỗi tìm kiếm không phải là trường hợp nhạy cảm. Một DataSet có thể chứa hai đối tượng DataTable có giá trị TableName tài sản và các giá trị khác nhau cho các tài sản liên kết đến.

26 hồi đáp tới "Kết nối cơ sở dữ liệu Microsoft Access và Điền DataGridView"

  1. [...] Để ghi các ví dụ về kết nối với SQL Server và Microsoft Access kết nối tôi nhận ra rằng mặc dù đây là hai loại cơ sở dữ liệu được sử dụng nhiều nhất khi [...]

  2. Uruguay carla nói:

    bởi vì sự thật là rất hữu ích. bởi vì tôi cần một mã đơn giản càng tốt bởi vì tôi có tải một bảng từ truy cập vào một DataGrid và tất cả các mã tôi đã cố gắng này là điều duy nhất mà mang lại cho tôi qua bàn và với các mã rất ít
    Với sự thật và phước lành
    Carla

  3. Edwin nói:

    Tôi phục vụ một lời cảm ơn rất nhiều! xem ngay cả khi tôi muốn biết làm thế nào lọc theo quốc gia, để tìm thấy một hồ sơ cụ thể.

  4. Oswaldo nói:

    Chúc mừng. bài viết của bạn rất tốt và trang của bạn ... Tôi sẽ hỏi làm thế nào để làm sạch DataGridView1 mỗi khi bạn bấm vào một nút để truy vấn và xem dữ liệu, nhưng tôi nghĩ rằng việc sửa chữa, nếu không đúng, nhưng ít nhất tôi đã làm việc . Điều duy nhất tôi đã làm là thêm "ds.Clear ()"
    Vì vậy:
    ds.Clear ()
    da.Fill (ds)
    DataGridView1.DataSource = ds.Tables (0)

    Bây giờ khi tôi thực hiện một TextBox gõ một tên bảng hiển thị các kết quả được tìm thấy trong lưới dữ liệu.

    • Elisha nói:

      A. - Để làm sạch: ok những gì bạn làm, bạn cũng có thể làm DataGridView1.DataSource = Không có gì
      2 - Để chỉ hiển thị các dữ liệu phù hợp với textBox thủ tục là như nhau, điều duy nhất mà thay đổi là câu lệnh SELECT thực hiện tìm kiếm. Ví dụ: "chọn * từ nhân viên WHERE tên như '%" & TextBox1.Text & "%'"

      Luck

  5. Oscar cho biết:

    Tôi đã làm việc với Visual Studio 6 và tôi đang cố gắng để làm việc với Visual Studio 2008. Tôi đã làm những gì hướng dẫn sử dụng để hiển thị dữ liệu từ một bảng trong DataGridView, nhưng không thành công. DataGridView được hiển thị, nhưng không phải là dữ liệu. Trong sự kiện load của form tự động được đặt dòng mã để cư dữ liệu, nhưng dường như điều đó không làm việc. Bất cứ ai biết nếu điều này là một vấn đề được biết đến?

  6. Maxi nói:

    Thực tế này hoạt động hoàn hảo nhưng những gì tôi không làm việc cho tôi là cập nhật chèn và xóa ... ngay cả với conexionstring thăm dò và sqlcomand .. và không làm ..
    Bất cứ ý tưởng?
    Cám ơn rất nhiều.

    • Maxi nói:

      Con trai tôi trả lời bản thân mình.
      chèn:
      Như New OleDbDataAdapter Dim daagregar ("chèn vào đơn đặt hàng (IDPLATO, Số lượng, IDMesa, CustomerID, ngày) giá trị (" & TxtCodigo.Text & "','" & TxtCantidad.Text & "','" & TxtMesa.Text & "', '0', '8 ')", CNX)
      daagregar.Fill (dsPedidos)

  7. Jorge cho biết:

    Hol như vậy tôi sẽ muốn biết là tôi làm để chèn dữ liệu vào datagridview nhưng nếu giá trị tồn tại và gửi tin nhắn đó đã tồn tại bởi vì lời chào

  8. Gabriel nói:

    Biết ơn đối với các mã ...

    Có cách nào khôi phục dữ liệu trong GridView và đặt chúng trong một tập tin PDF.

    Lời chào từ Chile

  9. tttony nói:

    Xin chào, tôi kết nối với DB 2007 truy cập từ C # NET ở đây tất cả các quyền, nhưng tôi có một bảng có ba lĩnh vực với các ngày và tôi muốn đưa ra một định dạng đầu ra và tôi có hai lựa chọn.

    1) Sau khi hoàn thành các DataGridView để định dạng ngày từng lĩnh vực có chứa

    2) với một câu lệnh SELECT:

    SELECT TOP 20 *, Format (buy_date], "Long Ngày") & "" & Format (buy_date] Thời gian ngắn ",) AS [buy_date] FROM ORDER BY id DESC thử nghiệm

    Vấn đề với quan điểm này là nó đặt buy_date từ vị trí 4 là 2 và tôi phải viết mã để đặt hàng và đó là những gì tôi không muốn

    Kính trọng

  10. Elisha cho biết:

    Tôi nhận được lỗi sau đây
    Không tìm thấy ISAM cài đặt.
    da.Fill (ds)
    Tôi đã làm tất cả mọi thứ như là lý do tại sao?

  11. Pablo_la31 nói:

    Hi! Tôi thấy tôi kết nối với một 2003 BD trong vb.net truy cập từ có mang lại cho tất cả các dữ liệu từ 3 bảng trong một DataTable với tất cả các cột của 3 bảng, bây giờ tôi muốn q là màn hình hiển thị trên DataGridView nhưng không phải tất cả các cột nhưng một số .. như tôi có thể làm điều đó?

  12. Jordi cho biết:

    Cảm ơn, Một lời giải thích rất đơn giản và rất thiết thực, Cảm ơn

  13. Daniel nói:

    Bài viết tuyệt vời, rất hữu ích và rất chi tiết, chỉ cần không biết nó đã được dễ dàng như vậy.

    Cảm ơn

  14. Misael nói:

    hello! hình dạng tuyệt vời và rất secilla
    Một câu hỏi một khi bạn điền vào DataSet DataGridView1 Làm thế nào tôi có thể nhận được một số giá trị từ một tế bào cụ thể, tức là nếu giá trị kisiera DataGridView1 trên cột 1 trong dòng 1?

  15. Claudio nói:

    Hello;
    Tôi sử dụng Visual Basic 2008 Microsofty và các phím tắt như cơ sở dữ liệu ... để ghi cùng một mã được đăng trong trang này, tôi nhận được một lỗi trên đường dây nói rằng: da.Fill (ds)

    lỗi không được kiểm soát System.Data.OleDb.OleDbException
    ErrorCode = -2147467259
    Tin nhắn = "Không phải là một tên tập tin hợp lệ."

    Có thể giúp tôi?
    Cảm ơn bạn ...

  16. tato25 nói:

    hi tất cả các nhu cầu giúp đỡ với xả của một hồ sơ để kết nối liên kết dữ liệu và tiến triển tốt nhưng sau đó cho tôi nhận được đây là mã
    kết nối:
    Formclientes_Load Private Sub (ByVal sender As System.Object, ByVal e Như System.EventArgs) Handles MyBase.Load
    Dim kết nối Như OleDbConnection
    kết nối = New OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; nguồn dữ liệu = C: \ proyectovb.net \ tesis.mdb")
    Như DataSet Dim dsCustomers
    Như consultaclientes chuỗi Dim
    consultaclientes = "chọn clientes.dni, clientes.apellido từ khách hàng"
    Khi New OleDbDataAdapter Dim daclientes (consultaclientes, kết nối)
    dsCustomers = New DataSet ()
    daclientes.Fill (dsCustomers, "khách hàng")
    Dgvclientes.DataSource = dsclientes.Tables ("khách hàng")

    Thêm nút:
    Như DataTable Dim TABLACLIENTES = New DataTable ("Khách hàng")
    Như DataRow Dim REGISTROCLIENTES = TABLACLIENTES.NewRow
    REGISTROCLIENTES (DNI) = Me.TextBox1.Text
    REGISTROCLIENTES ("NAME") = Me.TextBox2.Text
    TABLACLIENTES.Rows.Add (REGISTROCLIENTES)
    Tôi sử dụng để xả như tôi thực hiện một kiểm tra cao, nhưng mới đầu tiên nếu hồ sơ đã tồn tại
    Tôi mong đợi một số phản ứng từ một số đoàn kết thông qua

  17. Borro nói:

    Big Beast!
    Tôi đã đốt cháy các tab

    Tôi đang sử dụng vb6 và vb thay đổi gần đây đến năm 2010

    CẢM ƠN!

  18. Jeysson nói:

    Dường như với tôi Đây không phải là MÃ CHO VB 2010
    PORFAVOT có thể dạy cho ai biết
    HỌC QUISIEA khẩn trương!

  19. Rodhe GAV nói:

    Xuất sắc đóng góp. Chúc mừng đổ tôi rất nhiều. Tôi iniciandome trong thế giới của VB.NET. Mặc dù tôi có đủ lập trình, nhưng bạn luôn cần ví dụ như vậy khi bạn thay đổi các ngôn ngữ lập trình. Kính trọng

  20. John nói:

    Tôi không nhìn thấy sự cởi mở về điều này, nhưng tôi muốn thêm vào dữ liệu mẫu cho một cơ sở dữ liệu trong việc tiếp cận và tôi có thể không, nếu ai đó có thể giúp sẽ đánh giá cao

    liên quan

  21. Amaliam nói:

    Tôi đã rất hữu ích, cảm ơn!

  22. Chilon nói:

    Kapo Komo rác, trông tôi có một câu hỏi, tôi đang lập trình với VB Net 2008 hoàn toàn không sử dụng nó, và tốt đã được chọn lên. Tôi nhận xét.

    Tôi đã làm một mô-đun định nghĩa của tôi coneccionn sentensia, và bộ chuyển đổi dữ liệu và tập hợp dữ liệu, tôi thực hiện các kết nối trong nhảy từ một sai lầm nhưng tôi n Coneccion.open của tôi, trông giống như tôi đã làm và cho tôi biết nếu bạn có thể giúp tôi ..

    MODULE

    Nhập khẩu System.Data
    Nhập khẩu System.Data.OleDb
    Module Module1
    Như ConecZion công cộng New OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; DataSource = C: \ Documents and Settings \ USER \ My Documents \ Pr Testear.mdb")
    Như New OleDbDataAdapter Công DataAdap ("select * from để Club XXXX] bởi NrodeSocio" ConecZion)
    Dataset Như Công DataSet mới
    End Module

    [B] VÀ ĐÂY TỪ [/ B]

    FrmFormwork_Load Private Sub (ByVal sender As System.Object, ByVal e Như System.EventArgs) Handles MyBase.Load
    ConecZion.Open ()

    DataSet.Clear ()
    DataAdap.Fill (Dataset, "miTestearDt")
    Dataset.Tables ("miTestearDt). DefaultView.Sort =" NrodeSocio ASC "

    ConecZion.Close ()
    End Sub

    NÀY LỖI VÀ dải ME

    Không tìm thấy ISAM cài đặt.

    porq có thể được? : S..

    Tôi hy vọng sẽ đón nhận phản ứng

  23. Marco cho biết:

    Cảm ơn sự giúp đỡ vấn đề là cố định các commenters tạo ra một thể hiện của tập hợp dữ liệu đã được khai báo ở đầu ví dụ như biến được gọi là một kỷ lục sau đó nó sẽ là: Dim kỷ lục = New DataSet () và thì đấy!

Bình luận