DataSet.Tables[].Select()可以过滤列吗?

解决方案 »

  1.   

    如果要对DataSet里的数据进行过滤,那么要通过DataSet里的的DataTable的DefaultView来过滤,
    也就是说要对一个表进行数据过虑,不是用Select来实现,而是通过对应的DataView来过滤,
    可如用DataView.RowFilter来过虑。如:下面的示例创建 DataView 并设置它的 RowFilter 属性。
    private void MakeDataView() 
    {
        DataView view = new DataView();    view.Table = DataSet1.Tables["Suppliers"];
        view.AllowDelete = true;
        view.AllowEdit = true;
        view.AllowNew = true;
        view.RowFilter = "City = 'Berlin'";
        view.RowStateFilter = DataViewRowState.ModifiedCurrent;
        view.Sort = "CompanyName DESC";    // Simple-bind to a TextBox control
        Text1.DataBindings.Add("Text", view, "CompanyName");
    }
      

  2.   

    我想只获取tables中的某一列的值,并消除重复的行,然后加入到ArrayList中,请问这样这样可以做到,再加分50
      

  3.   

    我想只获取tables中的某一列的值,并消除重复的行,然后加入到ArrayList中
    -----------------------
    这样的话,最好你写一个循环向ArrayList中添加,
    在一个DataTable中进行循环是一个常见的操作。且没有什么更好的办法。
      

  4.   

    楼上的我想问一下
    用dataview是不是只是用了一个标
    如果是两个表呢
      

  5.   

    DataTable.Select不能过滤列,似乎微软提供的方法里也没过滤列的。表结构在生成DataTable里已经有了,如果想把列删除,涉及的比较复杂,也许还有约束关系。
    可以在遍历原DataTable时生成一个新DataTable用DataRow.Add(object [])把数据加入到新的DataTable里,DataRow是新DataTable的,object []是原DataTable某行的。
    要判断是不是重复行似乎没好方法,DataTable不能根据每行存放的数据判断是不是有重复行,对DataTable来说,就是个表存放数据
      

  6.   

    谢谢大家,看来要实现“我想只获取tables中的某一列的值,并消除重复的行,然后加入到ArrayList中”这样的功能,再dataset中是很困难的,只有变换思路了