webForumDet fria alternativet

Lägga till columns i befintlig datatable?

.NETur .NET

2 svar · 336 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#1

Har en datatable med innehåll där jag vill lägga till två kolumner och innehåll i de kolumnerna för varje rad. Men det verkar bli en evighetsloop, vad har jag gjort för fel?

DataColumn test1= new DataColumn("test1");
dt.Columns.Add(test1);

DataColumn test2= new DataColumn("test2");
dt.Columns.Add(test2);

for (int i = 0; i < dt.Rows.Count; i++) {
  DataRow row = dt.NewRow();
  row["test1"] = "a";
  row["test2"] = "b";
  dt.Rows.Add(row);
}
Medlem sedan sep. 2005673 inlägg
#2

Ah, man kan ju inte göra en ny row när man redan har en... så här enkelt var det:

dt.Rows[i][test1] = "test1";
dt.Rows[i][test2] = "test2";
Medlem sedan dec. 19996 721 inlägg
#3

Felet är att du skapar och lägger till en ny rad till tabellen i varje loopvarv, vilket i samband med en icke rekommenderad for-villkorssats gör att det blir en evig loop. Det du vill åstadkomma är väl...

int rowcount=dt.Rows.Count
DataRow row;
for (int i = 0; i < rowcount; i++) {
  row=dt.Rows[i];
  row["test1"] = "a";
  row["test2"] = "b";
}

eller

foreach (DataRow row in dt.Rows){
  row["test1"] = "a";
  row["test2"] = "b";
}
259 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
119 ms — hämta statistik (db)
137 ms — hämta tråd, inlägg och bilagor (db)