日期:2014-05-18  浏览次数:21042 次

winform Dataset 添加一列并指定其位置
DataColumn column = new DataColumn("goods_sn", System.Type.GetType("System.String"));
 myDataSet.Tables[0].Columns.Add(column);
 这样添加一列后,添加的列排在列集合的最后,我想给添加的一列指定其位置,不知能否,请各位大侠指教??

------解决方案--------------------
没有那种方法
DataTable dt=new DataTable();
遍历生成新datatable
------解决方案--------------------
这个问题就难住了?我给你个方法:
C# code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Data;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dt = new DataTable();
            DataColumn dc = new DataColumn("F1", typeof(System.String));
            dt.Columns.Add(dc);

            dc = new DataColumn("F2", typeof(System.String));
            dt.Columns.Add(dc);

            Console.WriteLine("DataTable创建完成时:");

            for (int i = 0; i < dt.Columns.Count; i++)
            {
                Console.WriteLine(string.Format("第{0}列名称是:{1},列序号是:{2}", 
                    (i + 1).ToString(), 
                    dt.Columns[i].ColumnName,
                    dt.Columns[i].Ordinal.ToString()));
            }

            Console.WriteLine("DataTable调整列位置之后:");

            dc = dt.Columns[1];
            dc.SetOrdinal(0);

            for (int i = 0; i < dt.Columns.Count; i++)
            {
                Console.WriteLine(string.Format("第{0}列名称是:{1},列序号是:{2}",
                    (i + 1).ToString(),
                    dt.Columns[i].ColumnName,
                    dt.Columns[i].Ordinal.ToString()));
            }


            Console.Read();
        }

    }
}

------解决方案--------------------
探讨
呵呵,不知道你要干吗?
你只要读取的时候按照顺序读取就可以了


------解决方案--------------------
探讨
引用:DataTable tableContent = new DataTable(); DataColumnCollection columns = tableContent.Columns; columns.Add("Displayname", typeof(string)); 一列一列的加 然后在添加到dataset中
不好意思 原来的DataSet中的数据呢,怎么弄??

------解决方案--------------------
我来晚了,发哥
你还是甩点分给我嘛
------解决方案--------------------
可以用DataColumn1.SetOrdinal(DataColumn2.Ordinal + 1)方法