Abbiamo già parlato altre volte di Ado.Net e Data Sets, questa volta vediamo con un rapido esempio come si crea un data set con più tabelle, nello specifico due e come impostare l'object Cache, ossia come non mantenere in memoria data set della dimensione biblica. Vediamo il codice
//Data adapter, SQL command e connection string.
SqlDataAdapter dar =new SqlDataAdapter("SELECT * FROM Clienti", 
    "server=(local);database=Contacts;Trusted_Connection=yes");
// Data set abbiamo due data tables
public DataSet ledue = new DataSet("Due");
private void Page_Load(object sender, System.EventArgs e)
{    // Ora facciamo il cache se è la prima volta che la pagina è visualizzata
    // o se l'object Cache non esiste
    if  ((!IsPostBack) ¦¦ (Cache.Get("leDue") == null))
    {  // Creiamo la tabella Clinti
        DataTable Clienti = new DataTable("Clienti");
        dar.Fill(Clienti);
        // Ora modifichiamo il SELECT command dell'adpter
        dar.SelectCommand.CommandText = "SELECT * FROM Preventivi";
        // Creiamo la tabella Preventivi
        DataTable Preventivi = new DataTable("Preventivi");
        dar.Fill(Preventivi);
        // Aggiungiamole entrambe allo stesso dataset.
        leDue.Tables.Add(Preventivi);
        leDue.Tables.Add(Clienti);
        // Qui impostiamo il tempo di cache del data set a 40 minuti.
        Cache.Add("leDue", leDue, null, DateTime.MaxValue,
            System.TimeSpan.FromMinutes(40), 
            System.Web.Caching.CacheItemPriority.Default, null);
        // Vogliamo vedere i nostri dati in una drop-down list quindi bindiamo.
        drClienti.DataBind();
        }
    else
        // Ok abbiamo già il dataset in cache utilizziamolo
        leDue = (DataSet) Cache["leDue"];
}
Ed ora vado a fare ancora qualche test....sperando che riprenda a funzionare l'ADSL così posso usare IMHO sul portatile e non fare travasi di post da un Pc all'altro :(
powered by IMHO 1.3