这个比较麻烦, 不过可以做到,
先把 dt 的所有列都拷贝的一个数组里面,再添加一个新列到数组里就可以:
DataColumn[] arr = new DataColumn[dt.Columns.Count + 1];
dt.Columns.CopyTo(arr, 0);
arr[n] = new DataColumn("name", Type.GetType("System.String"));
再创建个新表 dtNew 把 arr 数组的列加到 dtNew 表里,再把 dt 表的数据全部赋值到 dtNew 表里。
它有数据和你增加列没有关系吧?如果你想插入,其它的列后移,那就叫修改列了。增加一个列就可以了,如果考虑插入只是为了显示顺序,那这就不必担心了,显示大都是绑定列的吧。
DataTable 里面数据你手写显示呀, 这样和它的位置有什么关系?
dt.Columns.Add("id").SetOrdinal(0);SetOrdinal 指定位置
还是这个方法好!