我有一个表tdb,有一个DBName字段。我将这个表读到DataSet myDataSet里,我如何得到一个DataView,使得这个DataView里的数据是myDataSet里tdb的DBName='public'所有的行,而不包含其他数据。谢谢!!!

解决方案 »

  1.   

    private void FillDeptData()
            {
                DataView dv =GetData();// 得到数据集
                //得到父节点为0的一级分类
                foreach (DataRow dr in dv.Table.Select("DBName='public'"))
                {
                    .......
                }
            }
      

  2.   

    用dataview的行过滤。ds.Tables[0].DefaultView.RowFilter = "条件";
      

  3.   

    参考
    DataSet ds = YourGetDataSetLogic();//get dataset                if ( ds != null && ds.Tables.Count > 0 )
                    {
                        DataView dv = ds.Tables[0].DefaultView;// get dataview                    string filter = string.Format( "DBName = '{0}' " , "public");
                        dv.RowFilter = filter; // filter
                      
                    }
      

  4.   

    使用 DataTable.select("DBName='public'"); 返回 DataRow[] 集.
    使用 DefaultView.RowFilter = "DBName='public'"; 可得 DataRowView 集.
      

  5.   

    DataRow[] 怎么转成DataRowView呢?谢谢!!!我发现 dv.RowFilter = filter有问题,用for遍历, 还是能遍历dv里所有行,不仅仅是过滤出的行。是这样吗?
    如:for(int i=0;i<=dv.Table.Rows.Count - 1;i++)
    {
    } 谢谢!!!
      

  6.   

    DataRow[] 怎么转成DataRowView呢?谢谢!!!我发现 dv.RowFilter = filter有问题,用for遍历, 还是能遍历dv里所有行,不仅仅是过滤出的行。是这样吗?
    如:for(int i=0;i<=dv.Table.Rows.Count - 1;i++)
    {
    }
    高手帮帮忙!谢谢