ciao.
Allora:
public DataGridView Carica_Datagrid(String sql)
{
DataGridView DG_esempio= new DataGridView();
Qui ti dichiaravi una nuova DatagridgridView, cosa che non serve perchè una grid view sta già sulla tua form (= spreco di memoria)
SqlConnessione = new SqlConnection(this.ConnectionString);
SqlConnessione.Open();
questa ci sta bene anche se avrei utilizzato una connessione statica in modulo a basso livello in modo da utilizzare sempre la stessa senza doverne creare una ogni volta.
SqlCommand = new SqlCommand();
SqlCommand.Connection = SqlConnessione;
SqlCommand.CommandType = CommandType.Text;
SqlCommand.CommandText = sql ;
SqlDataset = new DataSet();
SqlAdapter = new SqlDataAdapter(SqlCommand);
SqlAdapter.Fill(SqlDataset, "app");
Tutto questo è sprecato!!! esempio per farti capire meglio: a te serviva un bigliettino da visita e hai comprato una risma da 500 fogli A3 (non so se rendo l'idea....)
DG_esempio.DataSource = SqlDataset;
DG_esempio.DataMember = "app";
DG_esempio.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
return DG_esempio;
qui valorizzavi il datasource della DatagridView dichiarata nella tua funzione e quindi visibile e valida solo qui dentro. Però in questo pezzo di codice avevi usato una cosa giusta: 'DG_esempio.DataSource = SqlDataset e DG_esempio.DataMember = "app"'. Hai valorizzato il DataSource della griglia con un oggetto DataTable. Questo è giustissimo. Dove sbagliavi tu è nell'istruzione che segue ('dgvArticoli.DataSource = connessione.Carica_Datagrid("select * from articoli")') perchè invece di passare al datasource un oggetto dataTable gli passavi una DataGridView. Quello che avevi scritto tu andava pure bene (a parte gli sprechi) fatta eccezione di scrivere questa riga di codice al posto della tua: 'dgvArticoli= connessione.Carica_Datagrid("select * from articoli")'
}
Da come hai scritto il codice penso tu abbia visto quello che scrive in automatico VisualStudio quando tiri dentro al progetto un database. Alle volte però visualStudio aggiunge un sacco di 'zozzerie' inutili. Meglio semplificare le cose così salviamo un po di memoria.
Per correttezza delle politiche del forum ricorda di chiudere il thread accettando una risposta.
Ciao ciao
Cristian Barca