最近我在改别人的程序,发现了一个很奇怪的问题。有一个datatable中保存了我获取的记录,然后我用datatable的select方法做了一次选择,出来的结果顺序别改变了,并且是按照其中某一列进行了排序。但是我在语句中并没有使用排序。选择语句如下
   string filter1 = "dimenType <> '' AND dimenParentCode = '" + itemCode + "'";
   DataRow [] drs1 = dimenDt.Select(filter1);
然后我修改了一下选择语句   string filter1 = "dimenType <> '' AND dimenParentCode = '" + itemCode + "'";
   DataRow [] drs1 = dimenDt.Select(filter1,"");
问题依然存在,请问这是什么原因造成的?

解决方案 »

  1.   

    Select(string str)方法摘要:
    按照主键顺序(如果没有主键,则按照添加顺序)获取与筛选条件相匹配的所有 System.Data.DataRow 对象的数组。
      

  2.   

    我在做select之前添加了这样一句
      DataColumn[] drs = dimenDt.PrimaryKey;
      结果发现dimenDt没有设置主键 
       结果是对其中的某一列排序了   我碰到了两次   两次排序列的位置还不一样
      

  3.   

    真是死心眼,用 DataView 的 RowFilter 不就行了,干嘛非用 DataTable.Select() ?!我倒是没注意过这个问题,因为我喜欢用 DataView ,极少用 DataTable.Select() ,即使用到 DataTable.Select() 时我也不关心顺序。如果你关注顺序就用 DataView 吧!别说不会用 DataView ,哈