`

DataSet、DataTable、DataRow、DataColumn

    博客分类:
  • C#
 
阅读更多

DataSet和DataTable详解

先构建一个结构与用户请求数据结构相同的DataTable,然后将用户的请求数据填充到构建好的DataTable中,最后将DataTable添加到DataSet中。


DataTable,,DataColumn,DataRow 深入研究

DataTable是内存中的一个关系数据表,可以独立创建使用,也可以作为DataSet的一个成员使用!

如何将DataTable作为DataSet的一个成员使用:
首先创建一个DataTable对象,其次通过使用Add方法将其添加到DataSet对象的Tables集合中
示例:
DataSet dsClass = new DataSet();   //创建一个新的空班级DataSet
DataTable dtClass = new DataTable("Class"); //创建班级表
dsClass.Tables.Add(dtClass);  //将班级表添加到DataSet中
如果没有指定DataTable名称时把DataTable添加到DataSet中,该表会得到一个从“0”开始递增的默认表名

刚开始创建的表没有表结构,要定义表的结构,必须创建DataColumn对象并将其添加到表的Columns集合中。在为DataTable定义了结构之后,通过DataRow对象将数据添加到表的Rows集合中

 

 


DataColumn

DataColumn是创建DataTable的基础,通过向DataTable中添加一个或多个DataColumn对象来定义DataTable的结构。DataColumn有一些常用属性用于对输入数据的限制,例如:数据类型,数据长度,默认值。

DataColumn的常用属性
AllowDBNull   是否允许空值
ColumnName    存储的数据类型
DataType      存储的数据类型
MaxLength     获取或设置文本列的最大长度
DafaultValue  默认值
Table        所属的DataTable的名称
Unique       DataColumn的值是否唯一

定义DataColumn有两种方法,
方法一:
//创建班级名称列
DataColumn className = new DataColumn();
className.ColumnName = "ClassName";
className.DataType = System.Type.GetType("System.String");
className.MaxLength = 50;

//创建班级名称列
DataColumn className = new DataColumn("ClassName",typeof(string));
className.MaxLength = 50;

 

 

DataRow
DataRow表示DataTable中包含的实际数据,我们可以通过DataRow将数据添加到用DataColumn定义好DataTable中。

//创建班级名称列
DataColumn className = new DataColumn("ClassName",typeof(string));
className.MaxLength = 50;
//创建一个新的数据行
DataRow drClass = dtClass.NewRow();
drClass["className"] = this.txtClassName.Text.Trim();

 

 

如何自定义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='活动'";

分享到:
评论

相关推荐

    C#关键字DataSet DataTable DataRow DataColumn数据集应用大全

    C# 中 DataSet、DataTable、DataRow、DataColumn 数据集应用大全 C# 中的数据集(DataSet)是一种数据存储结构,用于存储和管理数据。它由 DataTable 和 DataRow 两个主要组件组成。DataTable 代表一个表格,而 ...

    C# DataSet和DataTable详解

    DataSet对象可以包含多个DataTable对象,每个DataTable对象都可以包含多个DataRow对象。我们可以通过校验DataTable对象的Constrains集合来了解数据的约束关系: ①、校验DataColumn的属性:ReadOnly, AllowDBNull, ...

    DataSet和DataTable有用的方法

    `DataTable`包含了数据行(`DataRow`)、数据列(`DataColumn`)、字段名、数据格以及约束和关系等信息,这些元素共同定义了数据的结构和规则。 `DataView`是`DataTable`的一个视图,它提供了动态的数据筛选和排序...

    详解C#的DataSet和DataTable

    详解 C# 的 DataSet 和 DataTable DataSet 和 DataTable 是 C# 中两个非常重要的数据结构,广泛应用于数据存储、数据处理和数据显示等方面。本文将详细介绍 DataSet 和 DataTable 的概念、关系、区别和使用方法。 ...

    C#_DataSet和DataTable详解

    ### C#中DataSet和DataTable详解 在C#的.NET框架中,`DataSet`和`DataTable`是处理数据集的关键组成部分,它们提供了强大的功能来存储、操作和管理数据,尤其是在与数据库交互时。以下是对这两个核心概念的深入解析...

    DataSet、DataTable、DataRow区别详解

    DataSet可以看作是包含多个DataTable的容器,用于管理整个数据集,而DataTable是表示具体的数据表,它包含了多个DataColumn和DataRow,用于描述表的结构和数据记录。DataRow是DataTable中的具体数据行,用于表示一条...

    dataset,datatable的使用详解

    在创建Dataset实例之后,可以向其中添加DataTable,每个DataTable可以包含多个DataRow和DataColumn,以及主键、约束等。 复制DataSet内容是一个重要的操作,主要目的是为了能够在不影响原始数据集的情况下,对数据...

    C__DataSet和DataTable详解

    DataTable则代表了单一的数据表,它包含了数据行(DataRow)和数据列(DataColumn)。可以像下面这样创建一个DataTable: ```csharp DataTable tbl = new DataTable("TableName"); ``` **3. 填充DataSet和...

    C#遍历DataSet中数据的几种方法总结

    在C#编程中,`DataSet`是一个非常重要的数据容器,它可以容纳多个`DataTable`,每个`DataTable`又包含多行`DataRow`和多列`DataColumn`的数据。当我们需要处理或展示`DataSet`中的所有数据时,遍历就显得尤为重要。...

    gridview—datatable -dataset -dataview

    它可以包含多个DataColumn(列)和DataRow(行),并提供了丰富的操作方法,如Add、Delete、Update和Select,便于数据操作。 Dataset是DataTable的扩展,它是一个包含多个表(DataTable)和关系的集合。Dataset作为...

    DataSet与DataTable的区别示例介绍

    接着,DataTable是单个数据表的表示,它包含了数据行(DataRow)和数据列(DataColumn),用来存储实际的数据内容。DataTable通常用于表示单一数据表中的数据,可以进行增加、删除、修改和查询操作。DataTable是构成...

    asp.net之dataset深入学习

    DataSet不仅仅是一个简单的数据容器,它还包含DataTable、DataColumn、DataRow等对象,形成了一个完整的数据模型。在深入学习DataSet时,首先我们需要理解这些基本元素的功能和相互关系: 1. DataTable:在DataSet...

    datatable使用详解

    Datatable 可以通过构造函数、DataSet、DataRow 等方式获得。Datatable 也是 ADO.NET 中的一个重要组件,用于存储和管理内存中的数据。 获取 Datatable 的方法 Datatable 有多种获取方法,包括: 1. 通过构造...

    reportViewer动态绑定DataTable

    DataRow dr = DataTable2.NewRow(); dr["DataColumn1"] = "qwe1" + i.ToString(); dr["DataColumn2"] = "qwe2" + i.ToString(); dr["DataColumn3"] = "qwe3" + i.ToString(); dr["DataColumn4"] = "qwe4" + i....

    C# DataTable的詳細用法.docx

    DataTable 由 DataColumn 和 DataRow 组成,DataColumn 定义了表的列,而 DataRow 则定义了表的行。 DataTable 有多种构造函数,用于初始化 DataTable 的实例。例如,DataTable() 构造函数不带参数,用于初始化一个...

    C#中DataSet的用法(很详细)

    1. DataTable:DataSet中的每个DataTable代表了数据表,由DataColumn(列定义)和DataRow(行数据)组成。DataColumn定义了表的结构,如字段名、数据类型等,而DataRow则存储具体的数据。 2. DataColumn:定义了...

    深入了解DataSet--vs2003

    DataSet主要由三部分组成:DataTable、DataColumn和DataRow。DataTable是DataSet中存储数据的主要容器,它相当于关系数据库中的表;DataColumn定义了DataTable中的列,包括列名、数据类型等信息;DataRow则是...

Global site tag (gtag.js) - Google Analytics