Podłącz do bazy danych Microsoft Access i wypełnienie DataGridView

Podobnie jak w poprzednim poście , bardzo sensilla i bardzo mało kodu, widzimy, jak nawiązać połączenie w Visual Basic. NET z pliku bazy danych w programie Microsoft Access, a następnie pobrać dane z tabel DataGridView nimi napełnił.

Pierwszą rzeczą do zrobienia jest zaimportowania dwóch nazw w następujący sposób:

 Imports System.Data
 Imports System.Data.OleDb

W tym przykładzie użyjemy formularz z przyciskiem (Button1) i DataGridView (DataGridView1). W przypadku kliknięcia przycisku button1 skopiuj poniższy kod i nazwę bazy danych. Mdb i nazwę tabeli w instrukcji SELECT ), tak że wszystko działa prawidłowo.

 Dim cnn As New OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C: \ myBaseAccess.mdb; User Id = admin, Password =";)

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

 da.Fill (ds)

 DataGridView1.DataSource = DS.Tables (0)

No nie, naprawdę wiele wyjaśnić ... to tworzy połączenie (CNN), a następnie DataAdapter (da), który jako deklaracja parametru do pobierania danych ( SELECT ) i połączenie do korzystania (CNN). Jeśli chcesz zaznaczyć tylko niektóre rekordy należy dodać warunek WHERE instrukcji SELECT.

W dalszej zostawiam kilka krótkich definicji jeśli ktoś z was były potrzebne i dowiedzieć się więcej na temat różnych opcji tworzenia połączenia z Microsoft Access zostawiam również następujący link: http://www.connectionstrings.com/access

DataAdapter

Reprezentuje zestaw poleceń SQL i połączenia z bazą danych, które są wykorzystywane do wypełnienia obiektu DataSet i zaktualizować źródła danych.
DataAdapter służy jako pomost między DataSet a źródłem danych dla pobierania i przechowywania danych. Aby pracować jako most, DataAdapter metodę Fill przypisuje zmian danych DataSet do meczu ze źródłem danych i przypisuje metodę Update, która modyfikuje dane w źródle danych do pokrywają się z DataSet.

DataSet

Reprezentuje w pamięci podręcznej danych. Jest to podstawowy element architektury ADO.NET. DataSet składa się z kolekcji obiektów DataTable.

DataTable

Reprezentuje tabelę danych w pamięci.
DataTable jest centralnym obiektem biblioteki ADO.NET. Wśród obiektów, które używają DataTable i DataSet DataView są zawarte.

Podczas uzyskiwania dostępu do obiektów DataTable, należy pamiętać, że wielkość liter warunkowo. Na przykład, jeśli DataTable nazwie "mydatatable" i innych "Mydatatable", ciąg znaków, który służy do wyszukiwania w jednej z tabel są uważane za wielkość liter. Jednak, jeśli jest "mydatatable" ale nie "Mydatatable" jest uważany za ciąg znaków nie jest rozróżniana wielkość liter. DataSet może zawierać dwóch obiektów DataTable, że mają takie same wartości nieruchomości TableName i różne wartości nieruchomości nazw.

25 Responses to "Podłącz do bazy danych Microsoft Access i wypełnienie DataGridView"

  1. [...] Pisanie przykład łączenia się z SQL Server i Microsoft Access Connection zdałem sobie sprawę, że choć są to dwa rodzaje najczęściej używanych baz danych, gdy [...]

  2. Urugwaj carla mówi:

    bo prawda była bardzo pomocna. ponieważ potrzebowałem kod tak prostym, jak to możliwe, ponieważ miałem problem z ładowaniem tabeli Dostęp do datagrid i wszystkie kody próbowałem to jedyna rzecz, która przyniosła mi przez stół i kod tak mało
    Dziękuję i błogosławieństwa
    Carla

  3. EDWIN powiedział:

    służył mi dobrze dzięki! gdybym chciał wiedzieć, jak Irlo filtrowania według kraju, aby znaleźć konkretny rekord.

  4. Oswaldo mówi:

    Pozdrowienia .. bardzo dobry artykuł i strony ... Chciałem zapytać, jak DataGridView1 czyste każdym razem należy kliknąć na przycisk wyszukiwania i wyświetlania danych, ale myślę, że naprawić, jeśli nie jest to poprawne, ale przynajmniej pracował . Jedyną rzeczą jaką zrobiłem było dodać "ds.Clear ()"
    Tak więc:
    ds.Clear ()
    da.Fill (ds)
    DataGridView1.DataSource = DS.Tables (0)

    Teraz, kiedy się TextBox, gdzie wpisując nazwę billboard pokazuje tylko wyniki znalezione w DataGrid ..

    • Elizeusz mówi:

      1 .- do czyszczenia: dobrze, co robisz, możesz równie dobrze zrobić DataGridView1.DataSource = Nothing
      2 .- Aby wyświetlić tylko te dane, które pasują do pola tekstowego procedura jest taka sama, jedyne co się zmienia, to instrukcja SELECT, która wykonuje wyszukiwania. Na przykład: "select * from pracownicy WHERE nazwisko LIKE '%" & TextBox1.Text i "%"

      Szczęście

  5. Oscar mówi:

    Pracowałem z Visual Studio 6 i staram się pracować z Visual Studio 2008. Zrobiłem to, co mówi instrukcja do wyświetlania danych z tabeli w DataGridView, bez powodzenia. DataGridView jest wyświetlany, ale nie dane. W przypadku obciążenia formularza są automatycznie umieszczane linii kodu, aby wypełnić dane, ale najwyraźniej to nie działa. Ktoś wie, czy jest to znany problem?

  6. Maxi mówi:

    Fakt, że to działa doskonale mnie, ale co nie działa dla mnie jest aktualizacja wstawić i usunąć ... nawet z conexionstring i sqlcomand sondy .. i nie robić ..
    Jakieś pomysły?
    Dziękuję bardzo.

    • Maxi mówi:

      Faceci odpowiadam ja.
      dodaje się:
      W New OleDbDataAdapter daagregar Dim ("insert into zamówień (IDPLATO, Ilość IDMesa, CustomerID, data) values ​​('" & "','" i TxtCodigo.Text i "','" i TxtMesa.Text TxtCantidad.Text & & "', '0', '8 ')", cnx)
      daagregar.Fill (dsPedidos)

  7. Jorge mówi:

    hol takich Chciałbym wiedzieć, jak zrobić, aby wstawić dane do datagridview, ale jeśli wartość już istnieje wysłać wiadomość, która już istnieje, ponieważ POZDROWIENIA

  8. Gabriel mówi:

    Wdzięczny za kod ...

    Czy jest jakiś sposób na odzyskanie danych w gridview i umieścić je w pliku PDF?.

    Pozdrowienia z Chile

  9. tttony mówi:

    Witam, połączyć się z Access 2007 DB z C # tak dobrze, ale mam tabeli, która ma trzy pola z datami i chcę dać format wyjściowy i mam dwie opcje.:

    1) Po zakończeniu DataGridView do formatu każdego pola, które zawiera datę

    2) Czy to z instrukcji SELECT:

    SELECT TOP 20 * Format ([buy_date], "Long Date") & "" & Format ([buy_date], "Short Time") AS [buy_date] FROM ORDER BY id DESC testów

    Problem z tym zapytanie jest to, że stawia [buy_date] z pozycji 4 do 2 i muszę napisać więcej kodu na zamówienie i to nie chcę

    Pozdrawiam

  10. Elizeusz mówi:

    Pojawia się następujący błąd
    Nie można odnaleźć instalowalnego sterownika ISAM.
    da.Fill (ds)
    Zrobiłem wszystko jak jest pomysłów?

  11. Pablo_la31 mówi:

    Hello! Patrzę połączenia z BD 2003 roku dostęp vb.net stamtąd przenieść wszystkie dane z 3 tabel w datatable z wszystkich kolumn z tabeli 3, q ​​chcę to pokazać dataGridView, ale nie wszystkie kolumny ale kilka .. jak mogę to zrobić?

  12. Jordi mówi:

    Dzięki, bardzo proste wyjaśnienie i bardzo praktyczne, dzięki

  13. Daniel mówi:

    Doskonała wiadomość, bardzo pomocny i bardzo szczegółowe, tylko nie wiedziałem, że to takie proste.

    Dzięki

  14. Misael mówi:

    hello! świetnej formie i bardzo secilla
    Pytanie po wypełnienia obiektu DataSet DataGridView1 Jak można otrzymać wartości określonej komórki, tj. jeśli wartość kisiera DataGridView1 w kolumnie 1 wiersz 1?

  15. Claudio mówi:

    Witam;
    Microsofty używać Visual Basic 2008 i Access jako bazy danych .. pisania tego samego kodu, który jest narażony na tej stronie pojawia się błąd w wierszu, który mówi: da.Fill (ds)

    błąd nie jest kontrolowana System.Data.OleDb.OleDbException
    ErrorCode =- 2147467259
    Message = "Nieprawidłowa nazwa pliku".

    Czy możesz pomóc?
    Dziękuję ...

  16. tato25 mówi:

    Witam wszystkich potrzebuje pomocy z wykonywania zapisu do łącza transmisji danych i będzie dobrze, ale potem do rozładunku nie wychodzi jest to kod
    połączenia:
    Formclientes_Load Private Sub (ByVal nadawcy jako System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim połączenie Jak OleDbConnection
    = połączenie New OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C: \ proyectovb.net \ tesis.mdb")
    As DataSet Dim dsCustomers
    As String Dim consultaclientes
    consultaclientes = "select clientes.dni, clientes.apellido od klientów"
    W New OleDbDataAdapter daclientes Dim (consultaclientes, połączenie)
    dsCustomers = New DataSet ()
    daclientes.Fill (DSClient, "klientów")
    Dsclientes.Tables Dgvclientes.DataSource = ("klientów")

    Przycisk Dodaj:
    W DataTable Dim TABLACLIENTES = New DataTable ("Klienci")
    Jak DataRow Dim = TABLACLIENTES.NewRow REGISTROCLIENTES
    REGISTROCLIENTES ("ID") = Me.TextBox1.Text
    REGISTROCLIENTES ("NAZWA") = Me.TextBox2.Text
    TABLACLIENTES.Rows.Add (REGISTROCLIENTES)
    Używam do wykonywania jak zrobić, żeby nowe wysokie, ale najpierw sprawdź, czy rekord już istnieje
    I spodziewać się odpowiedzi od niektórych solidarności

  17. Borro mówi:

    Big Beast !!!!!!!
    I już spalone karty

    Używam vb6 i ostatnich zmian w vb 2010

    DZIĘKUJĘ !!!!!

  18. Jeysson mówi:

    Wydaje mi się, NIE JEST TO KOD NA VB 2010
    MOŻE ktoś wie PORFAVOT DO NAUKI
    LEARN QUISIEA PILNE!

  19. Rodhe Gav mówi:

    Ogromny wkład. Gratulacje bardzo mi pomogło. Zaczynam w świecie VB.NET. Mimo, że mam wystarczająco dużo programowania, ale zawsze trzeba przykładów tak po zmianie języka programowania. Pozdrawiam

  20. John mówi:

    Widziałem nic otworzyć ten temat, ale chcę dodać dane formularza do dostępu do bazy danych i nie mogę, jeśli ktoś może pomóc WDZIĘCZNI

    chodzi

  21. Amaliam mówi:

    I była bardzo pomocna, dzięki!

  22. Chilon mówi:

    Komo miotu kapo, wygląd Mam pytanie, jestem programowania VB. Net 2008 r. zupełnie nie używać, a dobrze odbierałem. I skomentował.

    Zrobiłem moduł, w którym mój sentensia z coneccionn definicji i zestaw danych karty i danych, zrobiłem połączenie w skoku, ale nie z mojej Coneccion.open Nie, to wygląda jak ja i powiedz mi, czy możesz mi pomóc ..

    MODUŁ

    Imports System.Data
    Imports System.Data.OleDb
    Moduł Module1
    W New ConecZion Public OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; DataSource = C: \ Documents and Settings \ user \ Moje dokumenty \ Pr Testear.mdb")
    W New OleDbDataAdapter Public DataAdap ("select * from [Club XXXX] aby przez NrodeSocio" ConecZion)
    Dataset As New DataSet Public
    End Module

    [B] I STĄD [/ B]

    FrmFormwork_Load Private Sub (ByVal nadawcy jako System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ConecZion.Open ()

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

    ConecZion.Close ()
    End Sub

    STRIP ME ten błąd i

    Nie można odnaleźć instalowalnego sterownika ISAM.

    porq może być? : S..

    Mam nadzieję, że do przyjęcia odpowiedzi

Komentarz