it-swarm.com.de

Wie füge ich neue DataRow in DataTable hinzu?

Ich habe ein DataGridView an ein DataTable gebunden (DataTable an eine Datenbank gebunden). Ich muss ein DataRow zum DataTable hinzufügen. Ich versuche den folgenden Code zu verwenden:

dataGridViewPersons.BindingContext[table].EndCurrentEdit();
DataRow row = table.NewRow();

for (int i = 0; i < 28; i++)
{
    row[i] = i.ToString();
}

Aber es funktioniert nicht, DataGridView hat noch nie eine neue Zeile hinzugefügt. Sagen Sie mir bitte, wie kann ich meinen Code reparieren?

Danke im Voraus.

35
malcoauri

Sie können es mit diesem Code versuchen - basierend auf Rows.Add method

DataTable table = new DataTable();
DataRow row = table.NewRow();
table.Rows.Add(row);

Link: https://msdn.Microsoft.com/en-us/library/9yfsd47w.aspx

53
Aghilas Yakoub

Ich fand dotnetperls Beispiele auf DataRow sehr hilfreich. Code-Snippet für neues DataTable von dort:

static DataTable GetTable()
{
    // Here we create a DataTable with four columns.
    DataTable table = new DataTable();
    table.Columns.Add("Weight", typeof(int));
    table.Columns.Add("Name", typeof(string));
    table.Columns.Add("Breed", typeof(string));
    table.Columns.Add("Date", typeof(DateTime));

    // Here we add five DataRows.
    table.Rows.Add(57, "Koko", "Shar Pei", DateTime.Now);
    table.Rows.Add(130, "Fido", "Bullmastiff", DateTime.Now);
    table.Rows.Add(92, "Alex", "Anatolian Shepherd Dog", DateTime.Now);
    table.Rows.Add(25, "Charles", "Cavalier King Charles Spaniel", DateTime.Now);
    table.Rows.Add(7, "Candy", "Yorkshire Terrier", DateTime.Now);

    return table;
}
15
mimo

// َ Eine neue Zeile mit der Struktur der Tabelle erstellen:

DataTable table = new DataTable();
DataRow row = table.NewRow();
table.Rows.Add(row);

// Werte an die Spalten der Zeile übergeben (diese Zeile soll 28 Spalten haben):

for (int i = 0; i < 28; i++)
{
    row[i] = i.ToString();
}
10
Mehran Sarrafi

Sie müssen die Zeile hinzufügen explizit zur Tabelle hinzufügen

table.Rows.Add(row);
3
rene

Wenn Sie aus einer anderen Tabelle kopieren möchten, müssen Sie zuerst die Struktur kopieren:

DataTable copyDt = existentDt.Clone();
copyDt.ImportRow(existentDt.Rows[0]);
2

Das funktioniert bei mir:

var table = new DataTable();
table.Rows.Add();
1
x-silencer

versuchen Sie table.Rows.add(row); nach Ihrer for Anweisung.

0
Riccardo