Torna al Thread
// creo il nuovo dataset
DataSet ds = new DataSet("Database");
// creo i due datatable
DataTable dt1 = new DataTable("Utenti");
DataTable dt2 = new DataTable("Stati");
// creo le colonne per i datatable
//----------------------------------------------------------------
// Anagrafica
dt1.Columns.Add(new DataColumn("IDUtente",typeof(int)));
dt1.Columns.Add(new DataColumn("NomeCognome", typeof(string)));
dt1.Columns.Add(new DataColumn("IDStato", typeof(Int16)));
// Stati
dt2.Columns.Add(new DataColumn("IDStato", typeof(Int16)));
dt2.Columns.Add(new DataColumn("Descrizione", typeof(string)));
//----------------------------------------------------------------
// popolo le righe dei datatable
//----------------------------------------------------------------
// Anagrafica
DataRow dr1 = dt1.NewRow();
dr1["IDUtente"] = 1;
dr1["NomeCognome"] = "Alessandro Alpi";
dr1["IDStato"] = 1;
dt1.Rows.Add(dr1);
dr1 = dt1.NewRow();
dr1["IDUtente"] = 2;
dr1["NomeCognome"] = "Marco Rossi";
dr1["IDStato"] = 1;
dt1.Rows.Add(dr1);
dr1 = dt1.NewRow();
dr1["IDUtente"] = 3;
dr1["NomeCognome"] = "Michael Denny";
dr1["IDStato"] = 2;
dt1.Rows.Add(dr1);
dr1 = dt1.NewRow();
dr1["IDUtente"] = 4;
dr1["NomeCognome"] = "Matteo Celaschi";
dr1["IDStato"] = 1;
dt1.Rows.Add(dr1);
dr1 = dt1.NewRow();
dr1["IDUtente"] = 5;
dr1["NomeCognome"] = "Daniele Zanella";
dr1["IDStato"] = 1;
dt1.Rows.Add(dr1);
// Stati
DataRow dr2 = dt2.NewRow();
dr2["IDStato"] = 1;
dr2["Descrizione"] = "Italia";
dt2.Rows.Add(dr2);
dr2 = dt2.NewRow();
dr2["IDStato"] = 2;
dr2["Descrizione"] = "United Kingdom";
dt2.Rows.Add(dr2);
//----------------------------------------------------------------
// Aggiungo le tabelle al dataset
ds.Tables.Add(dt1);
ds.Tables.Add(dt2);
// Creo la relazione
ds.Relations.Add(new DataRelation("RL_Stati_Utenti", dt2.Columns["IDStato"], dt1.Columns["IDStato"]));
// Visualizzo i dati dalla relazione
foreach (DataRow drP in dt2.Rows)
{
foreach (DataRow drC in drP.GetChildRows("RL_Stati_Utenti"))
{
MessageBox.Show(String.Format("{0} - {1}", drC["NomeCognome"].ToString(), drP["Descrizione"].ToString()));
}
}