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

如何将一个新的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 } 

只要继续使用你的代码 – 你正确的道路上:

 //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 

应该不是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 } 

这是一个可选的解决scheme,以减lessFor / ForEach循环,这将减less循环时间和更新快速:)

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

尝试这个

 > 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; 

只有你想设置默认值参数。 这个调用第三个重载方法。

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