Salve a tutti, innanzitutto mi scuso se ho sbagliato sezione (è il mio primo topic!).
Sto sviluppando un'applicazione Windows in C# mediante l'utilizzo di Visual Studio Express.
Sto lavorando con un database MySQL configurato e creato da me, e sto utilizzando il MySQL connector per il .NET.
Mi sono creato un oggetto DbManager che si occupa di gestire tutta la comunicazione/scambio dei dati tra il database e l'applicazione che sto sviluppando.
Tutto procede abbastanza bene, ma sono incappato in un errore strano, ovvero:
public DataTable GetTabella(string query)
{
comando.CommandText = query;
tabella.Rows.Clear();
tabella.Columns.Clear();
adapter.SelectCommand = comando;
adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
try
{
adapter.Fill(tabella);
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
return tabella;
}
ho scritto in questa classe un semplice metodo che mi ritorna un datatable con i dati richiesti dall'istruzione SQL.
Il problema non è in questo frammento di codice, in quanto in fase di debug funziona correttamente (nel senso che tira fuori i dati in maniera corretta).
Il nocciolo della questione è qui:
public partial class Detail : Form
{
DbManager dbman;
DataTable sedi;
DataTable referenti;
string query;
public Detail()
{
InitializeComponent();
}
private void detail_Load(object sender, EventArgs e)
{
dbman = new DbManager(NomeUtente, Password);
query = "testo della query"
sedi = dbman.GetTabella(query);
grdSedi.DataSource = sedi;
query = "testo della query"
referenti = dbman.GetTabella(query);
grdReferenti.DataSource = referenti;
}
per inciso, questa è una form con due controlli DataGridView (grdSedi e grdReferenti). Quando io richiamo il metodo GetTabella() la prima volta mi associa al DataTable sedi i dati corretti e poi li immette nel DataGridView grdSedi. Alla seconda operazione sempre del metodo GetTabella() ritorna sul DataTable referenti i dati giusti, ma la cosa stranissima è che questi dati me li scrive pure sul primo DataTable!
Quindi io alla fine mi ritrovo con due DataTable (referenti e sedi) con dentro i dati dell'ultima lettura del DataAdapter.
Spero d'essere stato comprensibile...in attesa di qualche aiuto! =D