2009-10-12 48 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

相關問題