如何向已包含数据的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
}
答案 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;