一、本篇主要讲ADO.NET的核心DataSet
DataSet里面有个DataTable,DataTable还有个对应的DataView
首先呢,假设数据库的数据
100 张三 15412486
102 李四 12789556
103 王五 45876133
缓解眼疲劳图片1
根据sql语句获取数据复制一份到内存中,从内存中获取DataTable,然后我们可以对其进行修改,最终将DataTable里面的数据json序列化
DataSet DS=bll.GetData();//后端获取数据 DataTable dt=DS.Tables[0];//得到DataTable //接下来就是如何处理DataTable里面的数据 ////Table操作 DataTable newDt=dt.Clone();//克隆表的结构(不包含数据) DataTable copyDt=dt.Copy();//克隆表的结构和数据 DataRow[] rows=dt.Select("条件");//选取符合条件的行 ////列操作 //新增一列 dt.Columns.Add("sex", typeof(string));//列名-sex,类型是string型 //dt.Columns.Add("sex", typeof(string)).SetOrdinal(1);//在指定的位置增加一列 //给新增的一列赋值 foreach(DataRow dr in dt.Rows) { dr["sex"]="男"; } //删除某一列 dt.Columns.Remove("name");删除name这一列 ////行操作 //新增一行 DataRow newRow=dt.NewRow(); newRow["id"]=104; newRow["name"]="萧炎"; newRow["mob"]="12345678"; dt.rows.add(newRow); //选取某些行 DataRow[] rows=dt.Select("id>100");选取id>100的行 //遍历操作 foreach(DataRow row in rows) { string name=row["name"].ToString(); } 三、DataView我们知道DataTable是从sql数据库里复制出来的一份数据,可以对DataTable进行操作(但不修改数据库里面的数据),比如新增一列、新增一行、修改列名、修改数据或者通过Select()方法进行筛选操作等。DataTable里面的数据是已经排好序的,但是我们是不好对DataTable进行重新排序的,如果要排序的话,难道要通过sql语句再次读取数据库吗?
那什么时候使用DataView呢?
官方上讲:DataView主要用于排序、筛选、搜索、编辑和导航。重点:修改DataView的数据,对应的DataTable数据也会改变,反之,对应的DataView数据也会随之改变。
其实呢,经实践证明:筛选、搜索等操作DataTable中的Select()方法也能做到,而且比DataView更快。毕竟DataView只是DataTable里面的数据虚拟出来的一个视图。
缓解眼疲劳图片2
在实际工作中,我们通过sql语句只从数据库里读取一次,然后将读取的数据进行操作。在这里,我想大家看完本篇博文应该知道,处理数据的时候,能使用DataTable进行筛选的就使用DataTable里面的方法(Select()方法等),如果不能达到效果,再考虑使用DataView进行处理。