2012-09-28 29 views
25

Ich habe eine DataGridView gebunden an eine DataTable (DataTable gebunden an die Datenbank). Ich muss eine DataRow an die DataTable hinzufügen. Ich versuche, den folgenden Code zu verwenden:Wie füge ich DataRow zu DataTable hinzu?

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

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

Aber es nicht funktioniert, hat DataGridView nie eine neue Zeile hinzugefügt. Bitte, sag mir, wie kann ich meinen Code reparieren?

Vielen Dank im Voraus.

+3

http://www.dotnetperls.com/datarow –

Antwort

0

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

1

Dies funktioniert für mich:

var table = new DataTable(); 
table.Rows.Add(); 
3

Wenn Bedarf aus einer anderen Tabelle zu kopieren, dann muß Struktur kopieren zuerst:

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

// eine neue Zeile mit der Struktur der Tabelle erstellen:

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

// Giving Werte zu den Spalten der Zeile (diese Zeile soll 28 Spalten haben):

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

Ich fand dotnetperls examples on DataRow sehr hilfreich. Code-Snippet für neue 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; 
} 
0
GRV.DataSource = Class1.DataTable; 
      GRV.DataBind(); 

Class1.GRV.Rows[e.RowIndex].Delete(); 
     GRV.DataSource = Class1.DataTable; 
     GRV.DataBind(); 
+4

Bitte versuchen Sie nur Dumping-Code als Antwort zu vermeiden und versuchen zu erklären, was sie tut und warum. Ihr Code ist möglicherweise nicht offensichtlich für Personen, die nicht über die entsprechende Codiererfahrung verfügen. Bitte bearbeiten Sie Ihre Antwort, um [Klärung, Kontext und versuchen Sie, Einschränkungen, Annahmen oder Vereinfachungen in Ihrer Antwort zu erwähnen.] (Https://stackoverflow.com/help/how-to-answer) –

Verwandte Themen