2010-11-05 27 views

回答

21
foreach (DataRow row in MyDataTable.Rows) 
{ 
row["columnNameHere" Or index] = value; 
} 
+0

1,因为我忘记.Rows。 – GendoIkari 2010-11-05 17:23:05

10
foreach (DataRow row in myDataTable.Rows) 
{ 
    //do what you need to calculate myNewValue here 
    row["myColumn"] = myNewValue; 
} 

修订添加.Rows。

1

除了使用for循环之外,它是一样的。这确实是一个偏好问题。试试下面的代码..

for (int i = 0; i <= myDataTable.Rows.Count - 1; i++){ 
        myDataTable.Rows[i]["ColumnName" Or IndexNumber] = value; 
} 
+0

这会工作,但我无法想象为什么你会使用它,而不是;这只是很多额外的代码。 – GendoIkari 2010-11-05 17:56:29

1

如果你想改变指定列,你可以使用上面的代码,但如果你想改变每个数据表中的内容,每一个细胞,然后我们需要创建另一个Datatable并使用“Import Row”如下所示进行绑定,如果我们不创建另一个表,它将抛出一个异常,并显示“Collection was Modified”。

请考虑以下代码。

//New Datatable created which will have updated cells 
      DataTable dtUpdated=new DataTable(); 
      //This gives similar schema to the new datatable 
      dtUpdated = dtReports.Clone(); 
       foreach (DataRow row in dtReports.Rows) 
       { 
        for (int i = 0; i < dtReports.Columns.Count; i++) 
        { 
         string oldVal = row[i].ToString(); 
         string newVal = "{"+oldVal; 
         row[i] = newVal; 
        } 
        dtUpdated.ImportRow(row); 
       } 

这将具有与前述Paranthesis({)所有小区