怎么改变dataset中列的顺序,高手们指点啊!!要能动态改变...分不够再加!加1000都没关系!!

解决方案 »

  1.   

    dataset是表的集合,并没有列存在于dataset中,
    改变列的集合是改变datatable吧?
    不要用cmd.fill填充dataset,而是手动填充datatable,这样列的顺序完全受你自己控制,
    最直接的办法是在sql语句中按你最终想要的列的顺序查询数据,然后cmd.fill就可以
      

  2.   

    在sql中,按你要的顺序查询后再fill就好了阿
      

  3.   

    dataset的表中列的顺序!!不是改变sql语句去改变列的顺序.是动态的改变!想那个列在前面就那个在前面..
      

  4.   

    SELECT A,B FROM TABLE;
    掉过来是SELECT B,A FROM TABLE;
    FILL一下,
    这样就掉了
      

  5.   

    还有,改变DataTable中列的位置没什么意义吧,需要改变的只不过是最终的展现在数据库中的表,楼主大概不会认为需要动态改变它的列的顺序吧... 道理是一样的当需要不同形式的展现时,主要通过动态绑定来控制
      

  6.   

    我已经实现了grid中列顺序的动态改变.我现在就想grid中改变了dataset中的表的列顺序也能改变!
      

  7.   

    我主要是为了实现在datagrid中列的显示顺序可以根据用户的需要由用户自己去改变!!
    这点我做到了!
    可是,现在列顺序改变以后,我要把datagrid中数据反选到其他控件上就不行了!
    反选的代码是这样写的!
    TextBox_yy.Text := DataGrid_wcbjl.Item[irow, DataSet_wcbjl.Tables[0].Columns[AnsiLowerCase('YX_WCYY')].Ordinal].ToString;
    DataSet_wcbjl.Tables[0].Columns[AnsiLowerCase('YX_WCYY')].Ordinal这个顺序没变.我取的值不对!
      

  8.   

    那你可以不用index取,而是用列名去取不就可以了么?DataColumnCollection不提供insert方法
    如果你非得要实现列顺序改变
    可能得借助Arraylist之类的
    先把所有的列放到Arraylist里,然后改变grid的时候,同时改变arraylist中的DataColumn
    不过这样做意义不大
    还是用列名比较好
      

  9.   

    取datagrid中的数据怎么用列名取.是取datagrid中一行的数据!!
      

  10.   

    沒有任何意義吧,要麽在後臺修改列順序,要麽在前臺修改,dataSet和DataTable只是數據的載體,修改它的順序幹嗎???
      

  11.   

    dataGrid和數據源本身就有映射關係的,不明白改了前臺列的順序和dataTable有什麽關係呢?
      

  12.   

    to MyLf(不睡觉的鱼)
    是取grid中的数据!grid中的数据和dataset中数据的位子不同!用字段名去匹配吧没办法取做!
    DataGrid中可以用字段去匹配吗!?
    有的话,写个出来
      

  13.   

    1、添加XML结构,你可以将数据库的表拖近来,那你就可以对这个表的顺序调整了
    2、也可以利用datagride来显示,以下连接应该可以帮到你
    http://blog.csdn.net/serversql/
      

  14.   

    to serversql(啊初) 
    你这种方法就是重建一个表!然后将数据导入到那个表!如果数据量大的话,速度和消耗不划算!!
    有其他办法改变列不!我自己有个很笨的方法.我想请教个比较代码少,简单些的方法!!
      

  15.   

    干嘛非要 去 导dataset中取值,可以载datagrid上取啊!
      

  16.   

    在表里面选然后在加载datagrid
    datagrid
    应射顺序改变一下就可以了
      

  17.   

    to 20011521() 在表里面选然后在加载datagrid
    datagrid
    应射顺序改变一下就可以了我的grid显示的dataset中全部的数据.在表里面选然后在加载datagrid你是不是通过sql做!
    我要的能反选到控件上去!
    你看下:我主要是为了实现在datagrid中列的显示顺序可以根据用户的需要由用户自己去改变!!
    这点我做到了!
    可是,现在列顺序改变以后,我要把datagrid中数据反选到其他控件上就不行了!
    反选的代码是这样写的!
    TextBox_yy.Text := DataGrid_wcbjl.Item[irow, DataSet_wcbjl.Tables[0].Columns[AnsiLowerCase('YX_WCYY')].Ordinal].ToString;
    DataSet_wcbjl.Tables[0].Columns[AnsiLowerCase('YX_WCYY')].Ordinal这个顺序没变.我取的值不对!请看清楚!
      

  18.   

    不用sql,基本上,不可能
    个人意见…
      

  19.   

    对于问题的描述没有看的很明白
    如果seraphzhao(血魔)方便的话
    你可以把你的需求写详细点
    发邮件给我
    我愿意尝试一下帮你把这个问题解决Email:zxdjsj◎hotmail.com
    (◎替换成@)
    Email标题中说明意图,不然可能被我当垃圾邮件