Oppure

Loading
16/03/09 17:18
daevoq
salve gente, ho un problemuccio che mi sta facendo impazzire.
in pratica devo popolare un listview con dei dati prelevati da un database solo che in tutto il web non riesco a trovare nessun esempio che non sia in VB.
potreste darmi qualche dritta in merito?
la tabella presenta 3 colonne e nel listview devo visualizzarne 2.
grazie in anticipo e se avete bisogno di chiarimenti chiedete pure.:k:
aaa
16/03/09 17:45
andrea.b89
senti ma sei sicuro che ti serva popolare un listview?
io te lo faccio ma mi sembra strano che usi un listview..
aaa
16/03/09 18:02
andrea.b89
Ecco un piccolo esempio su come fare.
Intanto crei una applicazione windows, io uso MS Visual C# 2008 Express Edition.
Poi ci posizioni un oggetto listview e un button, senza cambiarne i nomi.
Infine termini facendo copia e incolla del codice che posto.

private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog open = new OpenFileDialog();
            open.Title = "Apri";
            open.Filter = "MDB|*.mdb";
            if (open.ShowDialog() == DialogResult.OK)
            {
                
                //crea una connessione che il database

                OleDbConnection connection = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " +
                    open.FileName);
                DataTable dt = new DataTable();

                OleDbDataAdapter dtAdapter = new OleDbDataAdapter("SELECT * FROM Tabella1", connection);
                
                //riempie il datatable con la query SQL scritta

                dtAdapter.Fill(dt);

                //elimina i precedenti oggetti nel listview

                listView1.Items.Clear();
                listView1.GridLines = true;

                //scorre tutte le linee del datatable

                foreach (DataRow dr in dt.Rows)
                {

                    //aggiunge ogni elemento prelevandolo dal datatable
                    listView1.Items.Add(dr[0].ToString(), dr[1].ToString(), 0);
                }
            }
        }


Poi colleghi l'evento click del button1 con il metodo button1_Click.
Infine includi la libreria System.Data.OleDb

Il codice opera del seguente modo :
- Apre un OpenFileDialog
- Legge i dati dal database, ovviamente modifica la query SQL come più ti accomoda.
- Carica i dati dal datatable al listview.

Spero di essere stato chiaro :)
aaa
17/03/09 9:24
daevoq
non so come ringraziarti, era molto semplice ma non riuscivo a venirne a capo, ora bisogna capire solo come dividere la listview in colonne :) e farla scrivere in verticale (adesso scrive i valori in orizzontale)!
Ultima modifica effettuata da daevoq 17/03/09 9:38
aaa
17/03/09 16:18
andrea.b89
ma come mai usi un listview per rappresentare un database invece di un datagridview?
aaa
17/03/09 17:10
andrea.b89
se fai

listView1.View = View.List;


ti organizza i dati come lista, più o meno come una listbox.
aaa
18/03/09 10:15
Il Totem
Beh, non è obbligatorio usare datagridview per visualizzare i dati di un database. E' il controllo che più si avvicina alla struttura del database relazionale, ma non è sempre il migliore: ad esempio, non può visualizzare immagini e testo insieme, cosa che invece il listview è in grado di fare.

P.S.: sinceramente, che in tutto il web non ci sia un esempio in c# mi lascia perplesso... infatti, c# è mediamente più usato di vb.net. Terzo risultato con google cercando "c# database listview":
java2s.com/Code/CSharp/Database-ADO.net/…
Se vuoi un suggerimento, prova ad applicare la logica "divide et impera" anche per le ricerche. Ovviamente non potrai trovare un esempio per ogni caso specifico, quindi dovresti cercare un esempio per ogni parte del problema, e poi rimettere insieme i pezzi: in questo caso, sarebbe bastato cercare un esempio sulla lettura dei database e uno sul popolamento delle listview, ognuno dei quali è molto più semplice da trovare rispetto all'insieme dei due.
aaa
18/03/09 10:38
andrea.b89
Postato originariamente da Il Totem:

Beh, non è obbligatorio usare datagridview per visualizzare i dati di un database. E' il controllo che più si avvicina alla struttura del database relazionale, ma non è sempre il migliore: ad esempio, non può visualizzare immagini e testo insieme, cosa che invece il listview è in grado di fare.


:k:

Infatti non conosco ciò che deve fare con un listview.
Ho solo espresso un parere su ciò che ritengo sia meglio usare per mostrare i dati di un database, se poi a lui servono delle funzionalità che solo il listview può dargli allora userà quello.
aaa