可以用下面的方法实现了对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,还有别的好一点的展示数据的方法吗?
知道的说说,感激不尽
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,还有别的好一点的展示数据的方法吗?
知道的说说,感激不尽
dv.Filter = "GPA < 2.0"
dg1.DataSource = dv;
dg1.DataBind();大意是这样了.用DataView
知道的说说,感激不尽
------------------------
一般展示用Repeater/DataList涉及行中有按钮或分页时用DG
dg1.DataBind();
参考网站:
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();