private void DataTableTest()
{
// DataTable "TestTable" erzeugen
DataTable dt = new DataTable("TestTable");
// Primärschlüssel
DataColumn c_id = new DataColumn("ID", typeof(int));
c_id.ReadOnly = true;
c_id.Caption = "ID";
c_id.AllowDBNull = false;
c_id.Unique = true;
c_id.AutoIncrement = true;
c_id.AutoIncrementSeed = 0;
c_id.AutoIncrementStep = 1;
c_id.ColumnMapping = MappingType.Attribute;
// weitere Spalten
DataColumn c_herst = new DataColumn("Hersteller", typeof(string));
DataColumn c_farbe = new DataColumn("Farbe", typeof(string));
// Spalten hinzufügen
dt.Columns.AddRange(new DataColumn[] { c_id, c_herst, c_farbe });
// Primärschlüsselspalte "ID" setzen
DataColumn[] prim = new DataColumn[1];
prim[0] = dt.Columns["ID"];
dt.PrimaryKey = prim;
// eine Zeile hinzufügen, Spaltenzugriff über Index
DataRow dr1 = dt.NewRow();
dr1[1] = "Audi";
dr1[2] = "grün";
dt.Rows.Add(dr1);
// eine Zeile hinzufügen, Spaltenzugriff über Name
DataRow dr2 = dt.NewRow();
dr2["Hersteller"] = "BMW";
dr2["Farbe"] = "blau";
dt.Rows.Add(dr2);
// zwei komplette Zeilen hinzufügen
dt.Rows.Add(new string[] { null, "VW", "gelb" });
dt.Rows.Add(new string[] { null, "Opel", "weiß" });
this.DisplayDataTable(dt);
// Zeile "Audi" anhand des Primärschlüssels suchen
DataRow dr = dt.Rows.Find(0);
dr["Farbe"] = "orange";
// Änderungen übernehmen
dt.AcceptChanges();
this.DisplayDataTable(dt);
// Zeile "Opel" anhand des Primärschlüssels suchen
DataRow drg = dt.Rows.Find("3");
// Zeile löschen
drg.Delete();
// Änderungen übernehmen
dt.AcceptChanges();
this.DisplayDataTable(dt);
}
/// <summary->
/// DataTable zeilenweise auf Console ausgeben
/// </summary->
/// <param name="dt"->DataTable</param->
public void DisplayDataTable(DataTable dt)
{
foreach (DataRow r in dt.Rows)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
Console.Write(r[i] + " | ");
}
Console.WriteLine();
}
Console.WriteLine();
}