2012-09-28 23 views
25

Mam powiązanie DataGridView z DataTable (DataTable powiązane z bazą danych). Muszę dodać DataRow do DataTable. Próbuję użyć następującego kodu:Jak dodać nową DataRow do DataTable?

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

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

Ale to nie działa, DataGridView nigdy nie został dodany nowy wiersz. Proszę, powiedz mi, jak mogę naprawić swój kod?

Z góry dziękuję.

+3

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

Odpowiedz

0

spróbować table.Rows.add(row); po wyciągu for.

1

Działa to dla mnie:

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

Jeśli trzeba skopiować z innej tabeli Następnie należy skopiować strukturę pierwszy:

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

// Utworzenie nowego wiersza ze strukturą tabeli:

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

// Nadanie wartości do kolumn wiersza (wiersz ten ma mieć 28 kolumn):

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

Znalazłem dotnetperls examples on DataRow bardzo pomocne. Fragment kodu dla nowej DataTable stamtąd:

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

Spróbuj uniknąć tylko kod dumping jako odpowiedź i spróbować wyjaśnić, co robi i dlaczego. Twój kod może nie być oczywisty dla osób, które nie mają odpowiedniego doświadczenia z kodowaniem. Zmodyfikuj swoją odpowiedź, aby uwzględnić [wyjaśnienie, kontekst i spróbuj wymienić wszelkie ograniczenia, założenia lub uproszczenia w swojej odpowiedzi.] (Https://stackoverflow.com/help/how-to-answer) –

Powiązane problemy