一、读取Xml文件:
Xml文件即可扩展标记的语言,可以用来标记数据,定义数据类型,是一种用户对自己的标记语言进行定义的源语言。关于Xml的学习,后面的博客会详细介绍,这里关于原理知识就不细说了。
在ASP.NET中关于Xml文件的读取有好多种方式,对于编写Xml文件也有好多方式,下面是我简单编写的一个Xml文件,这里做个简单的介绍,仅用于本实例的讲解:
右键项目——添加——新建项目:
<?xml version="1.0" encoding="utf-8" ?> <students> <student> <name>xiao</name> <sex>女</sex> <age>23</age> </student> <student> <name>yang</name> <sex>男</sex> <age>25</age> </student> </students>
也可以再数据项中手动添加。
然后引入命名空间:
using System.IO; //导入文件流的命名空间 using System.Data; using System.Data.sqlClient;
<span style="font-size:14px;">protected voidPage_Load(object sender,EventArgse) { <span style="white-space:pre"> </span>//读取Xml文件 FileStream fs = new FileStream(Server.MapPath("student.xml"),FileMode.Open,FileAccess.Read); StreamReader sr = new StreamReader(fs); DataSet ds = new DataSet(); ds.ReadXml(sr); this.GridView1.DataSource= ds.Tables[0]; this.GridView1.DataBind(); }</span>
其中fileStream类是专门对文件系统进行读取、写入、打开和关闭操作的。
而StreamReader类专门从字节流中读取字符。
然后定义一个DataSet数据集,将读取的内容放到数据集中,在GridView控件中显示出来。这样就简单的完成了Xml文件的读取。
下面继续上篇博客中的GridView控件绑定数据的介绍,现在更改界面,在每一个查询条件后面都加上一个CheckBox控件
public static DataTable selectAllPerson() { sqlConnection con = personOperate.createCon(); sqlDataAdapter sda = new sqlDataAdapter(); sda.SelectCommand = new sqlCommand("select * from person",con); DataSet ds = new DataSet(); sda.Fill(ds,"person"); return ds.Tables["person"]; } public static DataTable selectAllPerson() { sqlConnection con = personOperate.createCon(); sqlDataAdapter sda = new sqlDataAdapter(); sda.SelectCommand = new sqlCommand("select * from person","person"); return ds.Tables["person"]; }
通过DataSet数据集返回一个DataTable表。
构造查询条件,拼接字符串:
string c = ""; if (this.chkPID.Checked) { if (this.chkPID.Text == "") { c = "pID like '%'"; } else { c = "pID=" + this.txtPID.Text; } } else { c = "pID like '%'"; } if (this.chkName.Checked) { c += "and personName like'%" + this.txtName.Text + "%'"; } if (this.chkSex.Checked) { if (this.rBtnNan.Checked) { c += " and personSex='男'"; } else { c += "and personSex='女'"; } }
建立一个视图,查询全部数据:
DataView dv = new DataView(personOperate.selectAllPerson());//将所有数据全部查出
使用DataView视图过滤器,并绑定数据:
dv.RowFilter = c;//根据选定的条件使用DataView视图过滤器 dv.Sort = "pID desc";//在视图中降序排列 //绑定数据 this.GridView1.DataSource = dv; this.GridView1.DataBind();
所谓的视图过滤器的功能就是首先查询出的所有数据,然后按照查询条件将满足条件的数据过滤出来。
DataView类用来表示定制的DataTable的视图,我们可以把他作为一个单独的类来处理。
RowFilter是一个可读又可写的属性,用来读取和设置过滤的表达式(在这里的表达式就是拼接的字符串,字符串中采用了通配符),通过视图过滤器查询显示数据就介绍到这里,下篇博客介绍如何通过Repeater控件实现分页显示。