Popolare datagridview da codice

giovedì 20 dicembre 2007 - 14.39

Dav-ide Profilo | Junior Member

Ciao a tutti, mi sto perdendo nel popolare una datagridview tramite una tabella contenuta in un database access.
Allora:
1) Ho configurato un dataset nel progetto da dove vedo in alteprima i dati in maniera corretta. (premetto che il problema mi nasce perchè il database dev'essere reindirizzato come percorso da operatore...)
2)Creo una form dove implemento una datagridview.... e fin qua tutto bene.
3) Al load della pagina eseguo questo codice:

Dim conn As New OleDb.OleDbConnection() 'Connessione
Dim sApp As String 'Stringa d'appoggio
Dim PathMDB As String 'Percorso database ACCESS
Public cn As ADODB.Connection


Try
sApp = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathMDB & ";"
conn.ConnectionString = sApp
conn.Open()
Catch ex As OleDb.OleDbException
conn.Close()
'MessageBox
Title = "ATTENZIONE"
Msg = "Impossibile accedere al database '" & PathMDB & "'. Verificare il percorso."
Style = vbOKOnly + vbCritical + vbDefaultButton1
Response = MsgBox(Msg, Style, Title)
Exit Function
End Try

Dim da As New OleDb.OleDbDataAdapter("SELECT * FROM MEC", conn)
da.Fill(New DataSet1.PippoDataTable)

....E poi mi perdo....
Qualcuno mi sa dire come popolare questa benedetta DataGridView...?
Grazie mille!


SSUPERPIPPO Profilo | Guru

Una volta creato il DataSet basta effettuare il binding con il DataGridView in questo modo:

TuoDataGridView.DataSource=TuoDataSet
TuoDataGridView.DataMember="NomeTabella"

Il DataGridView genera automaticamente le colonne e si popola con i dati contenuti nel DataTable specificato

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

Dav-ide Profilo | Junior Member

Ma il mio dataset ha un percorso dinamico... per questo motivo prima apro la conn.....

SSUPERPIPPO Profilo | Guru

Non riesco a capire il tuo problema....

Crei il DataSet (indipendentemente dal percorso)
Effettui il binding con il tuo DataGridView (come ti ho indicato)
Al termine delle eventuali modifiche/inserimenti/eliminazioni che effettuerai sul DataGrid per salvare sul database esegui il metodo update del dataadapter



http://blogs.dotnethell.it/alebadalin

Dav-ide Profilo | Junior Member

Qualcosa mi sfugge....
Ok, creo il mio dataset indipendentemente dal percorso...
Supponiamo che il database è in C:\db.mdb (su questo creo il dataset), ma che devo lavorare a runtime su un database che è in Z:\db.mdb....
La cosa che non capisco è che se non cambio in qualche modo la connessione, il datagrid mi viene popolato con il db che è in C:\ (quello del dataset) e non in Z:\...

SSUPERPIPPO Profilo | Guru

Sinceramente non mi è ancora molto chiaro quale sia il tuo problema...

Prova a dare un'occhiata sul mio blog (link sotto), trovi un articolo che spiega come creare una classe per la gestione degli accessi al database semplificata... potrebbe essere la soluzione... spero...


http://blogs.dotnethell.it/alebadalin

freeteo Profilo | Guru

ciao,
a mio avviso l'errore sta qui:

da.Fill(New DataSet1.PippoDataTable)

qui stai riempiendo una tabella un memoria a cui non hai nessuna variabile che fa riferimento, quindi i dati vengon caricati ma tu non li usi mai.
Devi usare qualcosa tipo:

Dim tuatab as New DataSet1.PippoDataTable da.Fill(tuatab)

e poi binadare quella come ti diceva superpippo:
tuagridview.DataSource = tuatab tuagridview.DataBind()

ciao.

ps: sei fuori stanza, la prossima volta psota in quella asp.net per queste problematiche


Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Dav-ide Profilo | Junior Member

Perfetto! Grazie mille!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5