2009-10-12 47 views
2

我已经使用DataAdapter填充了一个DataTable,但是我想动态更改DataTable中该列中所有行的值。我如何去做这件事?如何更改数据表列中的特定数据?

这里是我当前的代码:

SqlConnection conn = null; 
string sSQL = ""; 
string connString = "Datasourceetc"; 

sSQL = "SELECT TEST_ID FROM TEST_TABLE"; 

SqlDataAdapter sda = new SqlDataAdapter(sSQL, conn); 

DataTable dt = new DataTable(); 

sda.Fill(dt); 

foreach (DataRow row in dt.Rows) 
{ 
    dt.Columns["TEST_ID"] = "changed"; //Not changing it?! 
} 

GridView1.DataSource = dt; 

GridView1.DataBind(); 

感谢

+1

它不chainging,因为你没有填写该表在... – CSharpAtl 2009-10-12 18:03:24

回答

3

一切看起来除非通过迭代行,您可以访问像这样的列好...

foreach (DataRow row in dt.Rows) 
{ 
    row["ColumnName"] = "changed"; //Not changing it?! 
} 
0

您需要填写,然后再改变!上述

SqlConnection conn = new SqlConnection(connString); 
string sSQL = "SELECT TEST_ID FROM TEST_TABLE"; 

DataTable dt = new DataTable(); 

SqlDataAdapter sda = new SqlDataAdapter(sSQL, conn); 

// fill the DataTable - now you should have rows and columns! 
sda.Fill(dt); 

// one you've filled your DataTable, you should be able 
// to iterate over it and change values 
foreach (DataRow row in dt.Rows) 
{ 
    row["TEST_ID"] = "changed"; //Not changing it?! 
} 

GridView1.DataSource = dt; 
GridView1.DataBind(); 

马克

+0

dt.Columns [“TEST_ID”] =“已更改”; 这给我一个错误:“System.Data.DataColumnCollection.this [string]'不能被分配给 - 它是只读 – EverTheLearner 2009-10-12 18:51:11

+0

啊,对不起,没有看到 - 当然,迭代行时,您需要使用该**行**对象来设置其字段值 - 请参阅我的更新 – 2009-10-12 20:21:14

相关问题