可以用下面的方法实现了对dataset的查询,并将结果绑定到datagrid。但是我是又新建了一个dataset数据集,把每一行从新赋值了一下,觉得比较麻烦。有没有可以直接把筛选到的数据行直接绑定到datagrid上吗?我用的vs2003.谢谢
DataSet StudentDS = new DataSet();
StudentDS.ReadXmlSchema(Server.MapPath("Students.XSD" ));
StudentDS.ReadXml(Server.MapPath("Students.XML") );            DataRow[] SelectRows = StudentDS.Tables["Student"].Select( "GPA < 2.0" );
       
string abc="Age>"+Convert.ToInt32(tb1.Text);
    SelectRows = StudentDS.Tables["Student"].Select( abc);   
        
            DataSet dsClone= StudentDS.Clone(); for (int i=0; i<SelectRows.Length;i++)
{
DataRow NewRow = dsClone.Tables["Student"].NewRow();
NewRow["Name"] = SelectRows[i]["Name"];
NewRow["Age"] = SelectRows[i]["Age"];
NewRow["GPA"]=SelectRows[i]["GPA"];
dsClone.Tables["Student"].Rows.Add( NewRow );
}
dg1.DataSource=dsClone.Tables["Student"].DefaultView;
dg1.DataBind();
还有,dataset到底有什么优势?可以把他的常用用法说下吗?
除了datagrid,还有别的好一点的展示数据的方法吗?
知道的说说,感激不尽

解决方案 »

  1.   

    DataView dv = new DataView()
    dv.Filter = "GPA < 2.0"
    dg1.DataSource = dv;
    dg1.DataBind();大意是这样了.用DataView
      

  2.   

    你可以用dataset的defaultview,然后用dataview(就是这个dataset的defaultview),设置不同的过滤条件,再分别帮定你就是.这样做,根本不需要你些那么多代码,还一行行有创建datatable和dataset
      

  3.   

    除了datagrid,还有别的好一点的展示数据的方法吗?
    知道的说说,感激不尽
    ------------------------
    一般展示用Repeater/DataList涉及行中有按钮或分页时用DG
      

  4.   

    dg1.DataSource=ds.Tables(0).Select("GPA<2.0");
    dg1.DataBind();
      

  5.   

    问题解决了,总结一下。
    参考网站:
    http://msdn2.microsoft.com/zh-cn/library/system.data.dataview.rowfilter(vs.80).aspx
    代码如下:
    DataSet StudentDS = new DataSet();
    StudentDS.ReadXmlSchema(Server.MapPath("Students.XSD" ));
    StudentDS.ReadXml(Server.MapPath("Students.XML") ); DataRow[] SelectRows = StudentDS.Tables["Student"].Select( "GPA < 2.0" );
        
    DataView view = StudentDS.Tables["Student"].DefaultView;
    view.AllowDelete = true;
    view.AllowEdit = true;
    view.AllowNew = true;
    view.RowFilter = "Age>15";
    // view.RowStateFilter = DataViewRowState.ModifiedCurrent;
    // view.Sort = "Age DESC"; dg1.DataSource=view;
    dg1.DataBind();