自定义DataSet
1.创建DataSet对象 2.创建DataTable对象 3.创建DataColumn对象构建表结构 4.将创建好的表结构添加到表中 5.创建DataRow对象新增数据 6.将数据插入到表中 7.将表添加到DataSet中 示例: //创建一个新的空班级DataSet DataSet dsClass = new DataSet(); //创建班级表 DataTable dtClass = new DataTable("Class"); //创建班级名称列 DataColumn dcClassName = new DataColumn("ClassName",typeof(string)); className.MaxLength = 50; //创建年级ID列 DataColumn dcGradeID = new DataColumn("GradeID",typeof(int)); //将定义好列添加到班级表中 dtClass.Columns.Add(dcClassName); dtClass.Columns.Add(dcGradeID); //创建一个新的数据行 DataRow drClass = dtClass.NewRow(); drClass["className"] = this.txtClassName.Text.Trim(); drClass["gradeID"] = objGrade.GetGradeIDByGradeName(this.cboGrade.Text.Trim()); //将新的数据行插入班级表中 dtClass.Rows.Add(drClass); //将班级表添加到DataSet中 dsClass.Tables.Add(dtClass); 如何获取DataSet中的数据 从DataSet中获取数据有两种方式: 1.第一种方式是通过指定DataSet中的具体DataTable的某行某列来获取数据。 步骤: 1.通过表名,从DataSet中获取指定的DataTable 2.通过索引,从DataTable中获取指定的DataRow 3.通过列名,从DataRow中获取指定列的数据 例: //得到班级名称 dsClass.Table["Class"].Row[0]["ClassName"]; //得到年级ID dsClass.Tables["Class"].Row[0]["GradeID"]2.另一种方式是将DataSet中的数据直接绑定到数据展示控件上。
我们一般都需要对从DataSet中提取出来的数据做一些简单的修饰,如隐藏特定列,按照某列排序。其实很简单,.net为我们提供了一个DataView对象,它可以像数据库中的视图一样帮助我们建立DataSet中数据对应的不同视图。(一个DataTable可以动态生成多个DataView) DataView DataView为我们提供DataTable的动态视图,并可以对动态生成的视图中的数据进行排序、笪选等操作,它与数据库中的视图类似,唯一不同的是它无法提供关联DataTable的视图,它不能排除原表中存在的列,也不能向原表中追加不存在的列 示例: //过滤掉用户状态为非活动的学员 //对过过滤后的学员信息以学员名称降序排序 DataSet dsStudent = new DataSet(); DataView dvStudent = new DataView(); dvStudent.Table = dsStudent.Tables["studentTable"]; dvStudent.RowFilter = "UserState = '活动'"; dvStudent.Sort = "StudentName DESC"; DataView几个常用的属性: Table 用于获取或设置源DataTable Sort 获取或设置DataView的一个或多个排序列以及排序顺序 RowFilter 获取或设置用于筛选在DataView中查看哪些行的表达式 Count 在应用RowFilter后,获取DataView中的行数 经验: 在开发中如果需要对DataGrigView展示的数据进行动态筛选或排序时,我们最好使用DataTable的DefaultView(默认视图)属性来得到DataTable的视图,这样我们就可以减少实例化DataView对象的步骤,以及获取DataView对象原DataTable的过程。 DataTable dtStudent = (DataTable)dataGridView.DataSource; dtStudent.Tables["studentTable"].DefaultView.RowFilter = "UserState='活动'";