将新列和数据添加到已包含数据的数据表中 - c#

时间:2010-02-22 18:03:03

标签: c# datatable datarow

如何向已包含数据的DataColumn对象添加新的DataTable

伪代码

//call SQL helper class to get initial data 
DataTable dt = sql.ExecuteDataTable("sp_MyProc");

dt.Columns.Add("NewColumn", type(System.Int32));

foreach(DataRow row in dr.Rows)
{
    //need to set value to NewColumn column
}

5 个答案:

答案 0 :(得分:100)

继续使用您的代码 - 您走在正确的轨道上:

//call SQL helper class to get initial data 
DataTable dt = sql.ExecuteDataTable("sp_MyProc");

dt.Columns.Add("NewColumn", typeof(System.Int32));

foreach(DataRow row in dt.Rows)
{
    //need to set value to NewColumn column
    row["NewColumn"] = 0;   // or set it to some other value
}

// possibly save your Dataset here, after setting all the new values

答案 1 :(得分:11)

不应该是foreach而不是!?

//call SQL helper class to get initial data  
DataTable dt = sql.ExecuteDataTable("sp_MyProc"); 

dt.Columns.Add("MyRow", **typeof**(System.Int32)); 

foreach(DataRow dr in dt.Rows) 
{ 
    //need to set value to MyRow column 
    dr["MyRow"] = 0;   // or set it to some other value 
} 

答案 2 :(得分:5)

这是一个减少For / ForEach循环的替代解决方案,这会减少循环时间并快速更新:)

 dt.Columns.Add("MyRow", typeof(System.Int32));
 dt.Columns["MyRow"].Expression = "'0'";

答案 3 :(得分:3)

只想设置默认值参数。这称为第三种重载方法。

dt.Columns.Add("MyRow", type(System.Int32),0);

答案 4 :(得分:2)

试试这个

> dt.columns.Add("ColumnName", typeof(Give the type you want));
> dt.Rows[give the row no like  or  or any no]["Column name in which you want to add data"] = Value;