ciao a tutti.
Ho un problemino con un HashTable e con la sua visibilita.
ho creato un oggetto dove dichiaro in hash comune a tutto l'oggeto (senza incapsularlo pero).
inun metodo, uso l'hash per caricarlo con ele coppie chiave-valore, come solito
nella form, vado a richiamare il metodo per fargli eseguire il caricamento con dei valori passati da me (sino a qui non ci sono problemi da nessuan parte)
il problema si presenta quando in un altro metodo, richiamo nuovamente l'Hash per leggerne i valori...
se non lo dichiaro new, mi dice che non è inizializzato, se lo dichiaro new mi diche che è vuoto (ovviamente.,..)
non so più come girarlo...
idee?
posto sotto il codice a titolo di esempio
/*nella classe*/
using System.Collections;
public class ConDB
{
public Hashtable myHas; //questo non funziona e mi da il problema
public Hashtable Sortite = new Hashtable (); //questo invece funziona perche usato per ritornare un valore dal metodo che carica i dati nell'Hashtable
public Hashtable NuovaSortita()
{
//qui uso il primo hash e lo carico di dati
Sortite.Add (ruota , valore);
return Sortite;
}
}
/*nella pagina */
protected void eseguiestrazione_Click(object sender, EventArgs e)
{
ConDB storico = new ConDB();
ConDB casuali = new ConDB();
// attivo un metodo per il calcolo di una serie di numeri random.
string rnd;
ltEstratti.Text = "<Table>";
for (int i = 0; i < 11; i++)
{
rnd = casuali.SortRandomNum();
string[] numeretti = rnd.Split(';');
ltEstratti.Text += "<tr><td>" + Ruote[i] + "</td>";
storico.Ruota = Ruote[i].ToString();
storico.Valore = rnd.ToString();
//qui l'hash viene caricato regolarmente
storico.myHas = storico.NuovaSortita();
for (int x = 0; x < numeretti.Length ; x++)
{
ltEstratti.Text +="<td>" + numeretti[x] + "</td>";
}
ltEstratti.Text += "</tr>";
}
ltEstratti.Text += "</Table>";
}
protected void pubblica_Click(object sender, EventArgs e)
{
// carico data, ruote e numeri nello storico
ConDB storico = new ConDB();
string qr;
bool resoconto;
//qui non mi vede l'hash e mi da errore
foreach (DictionaryEntry de in storico.myHas)
{
qr = "Insert into Storico (";
qr += "HData, HRuota, HNumeri";
qr += ") values ('";
qr += dataestrazione.ToString()+ "', '";
qr += de.Key + "', '";
qr += de.Value + "'";
resoconto = storico.ExecuteNonQuery(qr);
}
}