none
DataTable的疑问 RRS feed

  • 问题

  • 一个在内存中的DataTable实例DemoTable,键值列为id。怎样对其进行重新排序?比如按照DemoField列进行升序
    Select方法不更改DemoTable本身是吗?

    另外,DataAdpter.Updata方法去更新DemoTable到数据源SourceTable,是否其默认更新数据行的顺序是按照键值列排序依次执行的?如:
    id    DemoField
    1     x
    3     y
    2     z

    其更新顺序是不是1-2-3进行?
    这个顺序有办法改变吗?

    2009年8月22日 12:10

答案

  • 您好,
    1、可以使用Select,该方法不改变DemoTable本身,因为返回了一个DataRow[]
    2、DataAdpter.Update方法应该是按数据在DemoTable中的顺序,并没有按id,我认为您举的例子,应该是1-3-2
         Update也接收DataRow[]参数,您可以先用Select方法返回一个排好序的DataRow[],然后Update这个DataRow[]。
    2009年8月22日 13:38

全部回复

  • 您好,
    1、可以使用Select,该方法不改变DemoTable本身,因为返回了一个DataRow[]
    2、DataAdpter.Update方法应该是按数据在DemoTable中的顺序,并没有按id,我认为您举的例子,应该是1-3-2
         Update也接收DataRow[]参数,您可以先用Select方法返回一个排好序的DataRow[],然后Update这个DataRow[]。
    2009年8月22日 13:38
  • 你好!谢谢你的回答
    1、我是想将DemoTable进行重行排序,请问有办法吗?
    2、我本来也觉得是这样,但是应用中出现了这样的问题:
         id列我是利用了GUID生成的字符串。当利用一下方式向DemoTable进行NewRow时:
         for i as integer=0 to 9
             newRow(0)=something.filed(0)
             newRow(1)=something.filed(1)
             newRow(3)=i
         next
         这时我发现DemoTable的row确实是按照依次按照i排列的
         updata()后,出现在access表中记录却与此顺序不符。
         查阅msdn后,上面说updata按照表的索引排序逐条执行,不知到底索引排序指什么?
    2009年8月22日 14:22
  • 您好,
    1、可以用Select来排序,具体请参考:http://msdn.microsoft.com/en-us/library/way3dy9w.aspx
    2、access中的顺序与这个没关系,只是update,并没有删除后重新按顺序插入。所以两者之间顺序没多大关系。
        
    2009年8月22日 14:40