Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Aggiornare i dati di una datagridview
domenica 20 luglio 2008 - 07.22
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
marcogio
Profilo
| Newbie
18
messaggi | Data Invio:
dom 20 lug 2008 - 07:22
Utilizzo Visual C# e MySql;
attraverso un MySqlCommand, aggiorno la tabella MySql.
Vorrei poi riportare le modifiche nel DataGridView già presente. Utilizzo perciò dataAdapterFill(DataSet,"tabella"). Però il DataGridView anzichè aggiornare i dati presenti, ricarica tutti i dati dalla tabella sottostante. Ottengo così sul DataGridView sia i vecchi che i nuovi dati.
Sottolineo che la tabella MySql ha una chiave primaria e che se riavvio il programma, DataGridView mostra i dati regolarmente una sola volta.
Evidentemente il programma non tiene conto della chiave primaria e crede che i record debbano essere aggiunti e non modificati. Qualcuno conosce la soluzione? Grazie.
paoval72
Profilo
| Senior Member
297
messaggi | Data Invio:
dom 20 lug 2008 - 11:08
Ciao, puoi postare sia l'html del datagridview che il codice con cui fai il bind?
Grazie,
Paolo
marcogio
Profilo
| Newbie
18
messaggi | Data Invio:
mer 23 lug 2008 - 04:47
questo è il corpo principale del programma:
code:
--------------------------------
private void Form1_Load(object sender, EventArgs e)
{
//implementazione per bnl
connessione = "Data Source=localhost;Database=miodatabase;User Id=miouser; Password=miapassword";
cnbanca = new MySqlConnection(connessione);
querybanca = "SELECT * FROM banca";
dabanca = new MySqlDataAdapter(querybanca, cnbanca);
dsbanca = new DataSet();
cnbanca.Open();
dabanca.FillSchema(dsbanca, SchemaType.Source);
dabanca.Fill(dsbanca, "tabellaBanca");
cnbanca.Close();
cbbanca = new MySqlCommandBuilder(dabanca);
bsbanca = new BindingSource();
bsbanca.DataSource = dsbanca;
bsbanca.DataMember = "tabellaBanca";
bsbanca.Sort = "data";
dataGridView1.DataSource = bsbanca;
-----------------------------
questo è invece l'evento che aggiorna la tabella di database sottostante, con il codice per inserire le modifiche nel datagridview.
code
----------------------------
private void toolStripButton25_Click(object sender, EventArgs e)
{
Form7 finestraGestioneEstrattoConto = new Form7();
DialogResult dataEstrattoConto = finestraGestioneEstrattoConto.ShowDialog();
if (dataEstrattoConto == DialogResult.Yes)
{
MySqlCommand cmInserisciDataEstratto = new MySqlCommand();
cmInserisciDataEstratto.Connection = cnbanca;
cmInserisciDataEstratto.CommandText = "UPDATE banca SET estratto ='"+finestraGestioneEstrattoConto.getDataEstratto()+"'"+
"WHERE (data BETWEEN '"+finestraGestioneEstrattoConto.getDataInizioNoEss()+"' AND '"+finestraGestioneEstrattoConto.getDataFineNoEss()+"' AND modalita <> 'pagamento fidelity')" +
"OR (data BETWEEN '"+finestraGestioneEstrattoConto.getDataInizioEss()+"' AND '"+finestraGestioneEstrattoConto.getDataFineEss()+"' AND modalita = 'pagamento fidelity')";
cnbanca.Open();
cmInserisciDataEstratto.ExecuteNonQuery();
dsbanca.Tables["tabellaBanca"].Clear(); //aggiunto successivamente
dabanca.Fill(dsbanca, "tabellaBanca");
cnbanca.Close();
}
}
-----------------------------------
come puoi notare, ho aggiunto la riga
dsbanca.Tables["tabellaBanca"].Clear();
per risolvere, almeno in via provvisoria il problema. Credo però che Fill() dovrebbe inserire solo le modifiche, senza la necessità di cancellare tutto il contenuto del datatable.
Torna su
Stanze Forum
Elenco Threads
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 !