2017-05-12 2 views
2

Ich möchte Daten zu Datentabelle innerhalb einer Schleife in C# hinzufügen, aber ich kann nicht. Ich benutze diesen Code aber es läuft 1 mal nicht mehr. Wenn i=2 es nicht funktioniert. Bitte helfen.So fügen Sie Daten zur Datentabelle hinzu

DataTable dt = new DataTable(); 
dt.Columns.Add("ProductId"); 
dt.Columns.Add("ProductTotalPrice"); 
DataRow dr = dt.NewRow(); 

for (int i = 0; i < 10; i++) 
{ 
    dr["ProductId"] = i.ToString(); 
    dr["ProductTotalPrice"] = (i*1000).ToString(); 
    dt.Rows.Add(dr); 
} 

Antwort

2
for (int i = 0; i < 10; i++) 
{ 
    dr = dt.NewRow(); 
    dr["ProductId"] = i.ToString(); 
    dr["ProductTotalPrice"] = (i*1000).ToString(); 
    dt.Rows.Add(dr); 
} 

Sollte funktionieren.

Jedes Mal, wenn Sie verschiedene DataRow hinzufügen müssen. Sie versuchen, dasselbe hinzuzufügen.

+0

Warum sollte es funktionieren? Vielleicht möchten Sie diese Erklärung auch in Ihre Antwort aufnehmen. – Rahul

0

Das ist, weil Sie nur eine DataRow äußere Schleife erstellen, und Sie sind tatsächlich über das Schreiben der alten Werte in dieser Zeile mit neuen Eins. Ihre Reihe Schöpfung sollte Looping sein und somit werden Sie neue Zeile pro Iteration haben wie

DataTable dt = new DataTable(); 
dt.Columns.Add("ProductId"); 
dt.Columns.Add("ProductTotalPrice"); 
DataRow dr = null; 

for (int i = 0; i < 10; i++) 
{ 
    dr = dt.NewRow(); // have new row on each iteration 
    dr["ProductId"] = i.ToString(); 
    dr["ProductTotalPrice"] = (i*1000).ToString(); 
    dt.Rows.Add(dr); 
} 
0

Noch eine andere einfache Art und Weise:

for (int i = 0; i < 10; i++) 
{ 
    dt.Rows.Add(i, i * 1000); 
} 
Verwandte Themen