Koble til Microsoft Access database og Fyll DataGridView

Som i forrige innlegg , mye sensilla og med svært lite kode, vil vi se hvordan man kobler i Visual Basic. net med en databasefil i Microsoft Access og deretter hente data fra en av styrene DataGridView fylt med dem.

Det første du må gjøre er å importere to navnerom som vist nedenfor:

 Importen System.Data
 Importen System.Data.OleDb

For dette eksempelet vil vi bruke et skjema med en knapp (Button1) og en DataGridView (DataGridView1). I et klikk tilfelle Button1 en kopi følgende kode og navnet på databasen. MDB og tabellen navn i setningen SELECT ) slik at alt fungerer fint.

 Dim cnn som ny OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; Datakilde = C: \ myBaseAccess.mdb; Bruker Id = admin, passord =;")

 Dim da som ny OleDbDataAdapter ("SELECT * FROM Products", CNN)
 Dim ds As New datasett

 da.Fill (ds)

 DataGridView1.DataSource = ds.Tables (0)

Vel, egentlig ikke mye å forklare ... du oppretter en tilkobling (CNN), deretter en DataAdapter (DA) har som parameter uttalelsen å hente data ( VELG ) og sammenhengen å bruke (CNN). Hvis du vil velge bare enkelte poster må legge til en betingelse WHERE SELECT-setningen.

I det følgende linjer, vil vi la noen korte definisjoner i tilfelle noen av dere var nødvendig og for å lære mer om de ulike alternativene for å opprette en tilkobling til Microsoft Access jeg forlater også følgende link: http://www.connectionstrings.com/access

DataAdapter

Representerer et sett av SQL-kommandoer og en database tilkobling som brukes til å fylle datasett og oppdatere datakilden.
DataAdapter fungerer som en bro mellom datasett og en datakilde for henting og lagring av data. Å fungere som en bro, DataAdapter Fyll metode stedfortredere, endre data datasett å matche datakilden, og tildeler Update metoden, som endrer dataene i datakilden for å sammenfalle med de datasett.

Datasett

Representerer et minne cache av data. Det er en fundamental del av ADO.NET arkitektur. Datasett består av en samling av DataTable objekter.

DataTable

Representerer en datatabell i minnet.
DataTable er en sentral gjenstand i ADO.NET biblioteket. Blant objektene som bruker DataTable og DataView datasett inkludert.

Ved tilgang DataTable objekter, må du huske på at disse er store og små bokstaver betinget. For eksempel er hvis en DataTable heter "mydatatable" og andre "Mydatatable", strengen som brukes til å søke en av tabellene regnes store og små bokstaver. Men hvis det er "mydatatable", men ingen "Mydatatable" regnes søkestrengen er ikke store og små bokstaver. Et datasett kan inneholde to DataTable objekter som har samme TableName eiendommen verdi og ulike verdier for Navnerom eiendommen.

26 Responses to "Koble til Microsoft Access database og Fyll DataGridView"

  1. [...] For å skrive eksempel på tilkobling til SQL Server og Microsoft Access Connection jeg innså at selv om disse er de to typer mest brukte databaser når [...]

  2. Uruguay carla sier:

    fordi sannheten var svært nyttig. fordi jeg trengte en kode så enkel som mulig fordi jeg hadde problemer med å laste en tabell fra tilgang til en DataGrid og alle kodene jeg prøvde dette var det eneste som brakte meg over bordet og med så lite kode
    Med sannhet og velsignelser
    Carla

  3. Edwin sier:

    Jeg tjente en masse takk! se det selv om jeg ønsket å vite hvordan filtrering av landet, for å finne en bestemt post.

  4. Oswaldo sier:

    Hilsen .. meget god artikkelen din og din side ... Jeg hadde tenkt å spørre hvordan du rengjør DataGridView1 hver gang du klikker på en knapp for å spørring og vise data, men jeg tror det fiks, om ikke riktig, men minst jobbet jeg . Det eneste jeg gjorde var å legge til "ds.Clear ()"
    So:
    ds.Clear ()
    da.Fill (ds)
    DataGridView1.DataSource = ds.Tables (0)

    Nå som jeg gjør en TextBox der skrive inn et navn tavla viser bare funnet i DataGrid ..

    • Elisha sier:

      A. - Slik rengjør: ok hva du gjør, kan du også gjøre DataGridView1.DataSource = Nothing
      2 -. Å vise bare de data som samsvarer tekstboksen prosedyren er den samme, det eneste som endres er SELECT-setningen som utfører søket. For eksempel: "select * from Ansatte WHERE navn LIKE '%" & TextBox1.Text & "%'"

      Luck

  5. Oscar sier:

    Jeg har jobbet med Visual Studio 6 og jeg prøver å jobbe med Visual Studio 2008. Jeg gjorde hva den manuelle sier for å vise data fra en tabell i en DataGridView, uten å lykkes. DataGridView vises, men ikke dataene. I lasten tilfelle av skjemaet plasseres automatisk linjer med kode for å fylle data, men tydeligvis ikke det fungerer. Noen som vet om dette er et kjent problem?

  6. Maxi sier:

    Det faktum at dette fungerer perfekt meg, men hva jeg jobber ikke for meg er innsatsen oppdateringen og slette ... selv med conexionstring sonde og sqlcomand .. og ikke å gjøre ..
    Noen ideer?
    Tusen takk.

    • Maxi sier:

      Gutter jeg svare meg selv.
      inn:
      Som New OleDbDataAdapter Dim daagregar ("INSERT INTO bestillinger (IDPLATO, mengde, IDMesa, CustomerID, Dato) verdier ('" & TxtCodigo.Text & "", "" & TxtCantidad.Text & "", "" & TxtMesa.Text & "', '0', '8 ')", CNX)
      daagregar.Fill (dsPedidos)

  7. Jorge sier:

    hol slik jeg ønsker å vite så jeg gjøre for å sette inn data i en datagridview men hvis verdien eksisterer og sende en melding som allerede eksisterer fordi GREETINGS

  8. Gabriel sier:

    Takknemlig for koden ...

    Er det noen måte å gjenopprette dataene i Gridview og legg dem i en PDF-fil?.

    Hilsen fra Chile

  9. tttony sier:

    Hei, kobler jeg med en Access 2007 DB fra C # NET her alt rett, men jeg har en tabell som har tre felt med datoer og jeg ønsker å gi en output format, og jeg har to alternativer.:

    1) Etter endt DataGridView å formatere hvert felt inneholder dato

    2) Gjør det med en SELECT-setning:

    SELECT TOP 20 *, Format ([buy_date], "Long Date") & "" & Format ([buy_date], 'Short Time') AS [buy_date] fra ORDER BY id DESC testing

    Problemet med dette synet er at det plasserer [buy_date] fra posisjon 4 til 2 og jeg må skrive mer kode på bestilling, og det er det jeg ikke vil

    Hilsen

  10. Elisa sa:

    Jeg får følgende feilmelding
    Finner ikke installerbar ISAM.
    da.Fill (ds)
    Jeg gjorde alt er så hvorfor?

  11. Pablo_la31 sier:

    Hei! Jeg ser jeg kontakt med en BD 2003 i vb.net tilgang derfra hente alle data fra 3 tabeller i en DataTable med alle kolonnene i 3 tabeller, nå vil jeg ha q er visning på en dataGridView, men ikke alle kolonnene men noen .. som kan jeg gjøre det?

  12. Jordi sier:

    Takk, en veldig enkel forklaring og veldig praktisk, takk

  13. Daniel sier:

    Utmerket innlegg, veldig hjelpsom og veldig detaljert, visste bare ikke det var så lett.

    Takk

  14. Misael sier:

    hallo! god form og veldig secilla
    Et spørsmål når du fyller datasettet DataGridView1 Hvordan kunne jeg få litt verdi fra en bestemt celle, dvs. hvis verdien kisiera DataGridView1 videre til kolonne 1 i rad 1?

  15. Claudio sier:

    Hei;
    Jeg bruker Visual Basic 2008 Microsofty og snarveier som database .. å skrive den samme koden som er postet i denne siden jeg får en feil på linjen som sier: da.Fill (DS)

    feilen er ikke kontrollert System.Data.OleDb.OleDbException
    ErrorCode = -2147467259
    Message = "Ikke et gyldig filnavn."

    Kan hjelpe meg?
    Takk ...

  16. tato25 sier:

    hei alle trenger hjelp med utslipp av en post til data link tilkobling og går bra, men da for den høye jeg får dette er koden
    tilkobling:
    Formclientes_Load Private Sub (ByVal sender Som System.Object, ByVal e Som System.EventArgs) Handles MyBase.Load
    Dim forbindelse Som OleDbConnection
    tilkobling = Ny OleDbConnection ("Provider = Microsoft.Jet.OLEDB.4.0; data source = C: \ proyectovb.net \ tesis.mdb")
    Som datasett Dim dsCustomers
    As String Dim consultaclientes
    consultaclientes = "select clientes.dni, clientes.apellido fra kunder"
    Som Nye OleDbDataAdapter Dim daclientes (consultaclientes, tilkobling)
    dsCustomers = nytt datasett ()
    daclientes.Fill (dsCustomers, "klienter")
    Dgvclientes.DataSource = dsclientes.Tables ("klienter")

    Legg knapp:
    Som DataTable Dim TABLACLIENTES = Ny DataTable ("kunder")
    Som DataRow Dim REGISTROCLIENTES = TABLACLIENTES.NewRow
    REGISTROCLIENTES ("dni") = Me.TextBox1.Text
    REGISTROCLIENTES ("navn") = Me.TextBox2.Text
    TABLACLIENTES.Rows.Add (REGISTROCLIENTES)
    Jeg bruker å slippe ut så lager jeg en ny høy men først sjekke om posten allerede eksisterer
    Jeg forventer litt respons fra noen solidaritet gjennom

  17. Borro sier:

    Big Beast!
    Jeg hadde allerede brent opp fanene

    Jeg bruker VB6 og VB siste endringen til 2010

    TAKK!

  18. Jeysson sier:

    For meg virker DETTE ER IKKE Kode for VB 2010
    PORFAVOT kan undervise noen vite
    LÆR QUISIEA innstendigste!

  19. Rodhe Gav sier:

    Utmerket bidrag. Gratulerer helte meg mye. Jeg iniciandome i verden av VB.NET. Selv om jeg har nok programmering, men du trenger alltid eksempler så når du endrer programmeringsspråk. Hilsen

  20. Johannes sier:

    Jeg så ingenting åpen om dette, men jeg vil legge skjemadata til en database i Access, og jeg kan ikke, hvis noen kunne hjelpe ville sette pris på

    hilsen

  21. Amaliam sier:

    Jeg var veldig nyttig, takk!

  22. Chilon sier:

    Komo kull kapoens ser har jeg et spørsmål, jeg programmerer med VB. Net 2008 for helt ikke bruke det, og god ble plukket opp. Jeg kommenterte.

    Jeg gjorde en modul hvor min definisjon av coneccionn sentensia, og dataene adapteren og datasett, gjorde jeg tilkoblingen i hopp fra en tabbe, men jeg n min Coneccion.open, ser ut som jeg gjorde, og fortelle meg hvis du kan hjelpe meg ..

    MODULE

    Importen System.Data
    Importen System.Data.OleDb
    Modul Module1
    Som New OleDbConnection Public ConecZion ("Provider = Microsoft.Jet.OLEDB.4.0; DataSource = C: \ Documents and Settings \ BRUKER \ Mine dokumenter \ Pr Testear.mdb")
    Som New OleDbDataAdapter Public DataAdap ("select * fra [Club XXXX] rekkefølge etter NrodeSocio" ConecZion)
    Datasett som ny datasett Public
    Slutt Module

    [B] Og her fra [/ B]

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

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

    ConecZion.Close ()
    End Sub

    Denne feilen og STRIP ME

    Finner ikke installerbar ISAM.

    porq kan være? : S..

    Jeg håper å omfavne svar

  23. Marco sier:

    Takk for hjelpen problemet er løst kommentatorer skaper en forekomst av datasettet som ble erklært i begynnelsen for mitt eksempel variabel kalles en rekord da det ville være: Dim record = nytt datasett () og voila!

Kommentar