Thursday, May 8, 2008

ToTable di DataView per valori univoci

. Thursday, May 8, 2008

Nel Framework 2.0 è stato introdotto il metodo ToTable (di cui personalmente non conoscevo l'esistenza smile_omg) della classe DataView.
L'aspetto interessante di questo metodo è rappresentato da un suo overload che permette di restituire un nuovo DataTable costituito solo da righe distinte ( per chi invece fosse interessato a qualcosa di "simile" nel risultato finale, per il Framework 1.x qui un possibile modo).
Ma vediamo un semplice esempio in cui ho creato una DataTable che presenta in due righe lo stesso valore per la colonna JobType.
C#:

   1: DataTable dt = new DataTable();
   2: dt.Columns.Add(new DataColumn("Name", typeof(string)));
   3: dt.Columns.Add(new DataColumn("JobType", typeof(string)));
   4: DataRow row;
   5:  
   6: row = dt.NewRow();
   7: row[0] = "Scott";
   8: row[1] = "IT-Programming";
   9: dt.Rows.Add(row);
  10:  
  11: row = dt.NewRow();
  12: row[0] = "Johan";
  13: row[1] = "Legal";
  14: dt.Rows.Add(row);
  15:  
  16: row = dt.NewRow();
  17: row[0] = "Bill";
  18: row[1] = "Legal";
  19: dt.Rows.Add(row);
  20:  
  21: row = dt.NewRow();
  22: row[0] = "Paul";
  23: row[1] = "Medical";
  24: dt.Rows.Add(row);
  25:             
  26: GridView1.DataSource = dt.DefaultView.ToTable( true, new string[] { "JobType"});
  27: GridView1.DataBind();


Vb.Net:


   1: Dim dt As DataTable = New DataTable()
   2: dt.Columns.Add(New DataColumn("Name", GetType(String)))
   3: dt.Columns.Add(New DataColumn("JobType", GetType(String)))
   4: Dim row As DataRow
   5:  
   6: row = dt.NewRow()
   7: row(0) = "Scott"
   8: row(1) = "IT-Programming"
   9: dt.Rows.Add(row)
  10:  
  11: row = dt.NewRow()
  12: row(0) = "Johan"
  13: row(1) = "Legal"
  14: dt.Rows.Add(row)
  15:  
  16: row = dt.NewRow()
  17: row(0) = "Bill"
  18: row(1) = "Legal"
  19: dt.Rows.Add(row)
  20:  
  21: row = dt.NewRow()
  22: row(0) = "Paul"
  23: row(1) = "Medical"
  24: dt.Rows.Add(row)
  25:  
  26: GridView1.DataSource = dt.DefaultView.ToTable(True, New String() {"JobType"})
  27: GridView1.DataBind()


Il risultato del metodo ToTable:
JobType: IT-Programming, Legal, Medical

0 commenti:

Post a Comment