2017-05-12 9 views
2

データテーブルにループ内のデータを追加したいのですが、できません。 私はこのコードを使用しますが、それは1回以上実行されません。 i=2それは働かない。 助けてください。データテーブルにデータを追加する方法

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); 
} 

答えて

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

動作するはずです。

毎回異なるdataRowを追加する必要があります。あなたは同じものを追加しようとしています。

+0

はそれが動作するはずですなぜ?その説明をあなたの答えに含めることもできます。 – Rahul

0

ループの外側に1つしか作成しないので、実際には新しい値でその行の古い値を上書きしています。あなたの列の作成は、ループ内にある必要がありますので、あなたは

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

さらに別の簡単な方法のように繰り返しごとに新しい行を持っています:

for (int i = 0; i < 10; i++) 
{ 
    dt.Rows.Add(i, i * 1000); 
} 
関連する問題