我想用DataView来查询,然后把结果显示在DataGrid上,不知道怎么做。我把DataGrid的数据源设为DataView了,可是运行的时候什么也没显示出来,这是怎么回事呀?

解决方案 »

  1.   

    DataView对象用来对DataTable进行筛选查询等操作,请检查你的查询条件.
    给你段实例代码:private void BindData()
    {
      string path=Server.MapPath("viyo.mdb");
      string sql="select * from downloads";

      DataSet ds=this.createDS(sql,path,"downloads");
      DataTable myTable=ds.Tables["downloads"];
      DataView dv=new DataView(myTable);
      dv.RowFilter="id='1'";//筛选出downloads表中id为1的行  //上面两句可简写作myTable.DefaultView.RowFilter="id='1'"; 省去定义DataView,然后把myTable作为DataGrid的数据源.
                
      this.DataGrid1.DataSource=dv;
      this.DataGrid1.DataBind();
    }
      

  2.   

    this.DataGrid1.DataSource=dv;
      this.DataGrid1.DataBind();
    上面绑定是可以的
    也许上你的dataview中没有数据,那么datagrid就不会有显示了 
    你要确保有数据存在
      

  3.   

    TO: zhangqiushui(水) 
    我用以下代码来显示查询结果的数据条数,结果dvFindResult.Count不为零,显然dataview中是有数据的。 string searchStr = SearchCondStr();//查询条件
    dvFindResult = new System.Data.DataView(dsEmp.Tables["员工"], searchStr, "员工编号", DataViewRowState.CurrentRows);
    MessageBox.Show("结果条数为:" + dvFindResult.Count);
      

  4.   

    DataGrid中好象没有DataBind()这个方法吧?
      

  5.   

    我用的是vs.net2003,SDK1.1,确实看不见这个DataBind()函数呢。只有一个SetDataBinding().
      

  6.   

    数据已经可以显示了,没用DataBind(),直接设置数据源就可以了。谢谢大家!