dataset、dataview、 datatable、 datacolum、datarow的关系一
2009-05-27 10:35
399 查看
数据集DataSet
DataSet
由表、关系和约束的集合组成。在 ADO.NET 中,DataTable 对象用于表示 DataSet 中的表。DataTable
表示一个内存内关系数据的表;数据对于所处的基于 .NET 的应用程序来说是本地数据,但可从数据源(例如,使用 DataAdapter 的 Microsoft SQL Server)中导入。
DataSet
类是数据的脱机容器。它不包含数据库连接的概念,实际上存储在
DataSet
中的数据不一定来源于数据库,它可以是
CSV
文件中的记录,或是来自测量设备中的点读取。
数据集由一组数据表组成,每个表都有一些数据列和数据行。除了定义数据外,还可以在
DataSet
中定义表之间的链接。例如,我们常常要定义父
/
子关系
(
通常也称为主
/
从关系
)
。表中的一个记录
(
即
Order)
链接到另一个表的许多记录上
(
即
Order
_
Details)
,这种关系可以在
DataSet
中定义和导航,如图
21-4
所示。
图
21-4
下一节描述和
DataSet
一起使用的类。
数据表DataTable
DataTable 类是 .NET Framework 类库中 System.Data 命名空间的成员。您可以独立创建和使用
DataTable,也可以作为 DataSet 的成员创建和使用,而且 DataTable 对象也可以与其他 .NET Framework
对象(包括 DataView)一起使用。您可以通过 DataSet 对象的 Tables 属性来访问 DataSet 中表的集合。
数据表非常类似于物理数据库表,它由一些带有特定属性的列组成,可能包含
0
行或多行数据。数据表也可以定义主键码
(
可以是一个列或多个列
)
,列上也可以包含约束。这些信息在本章的其他部分称为“模式”。
为数据表定义模式有几种方式
(
把数据集当作一个整体
)
,这些在介绍了数据列和数据行后讨论。图
21-5
显示了一些可通过数据表访问的对象。
图
21-5
DataTable
对象
(
和
DataColumn)
可以附带任意多个扩展属性。这个集合可以用附属于对象的用户自定义信息来填充。例如,某个列有一个输入掩码,用于验证列的内容是否有效,比较规范的示例是
US
社会安全号。当数据在中间层中构造,要返回给客户机,进行某些处理时,最适合使用扩展的属性。例如,可以在扩展的属性
(
如
min
和
max)
中存储数字列的有效性标准,在验证用户输入时在
UI
层使用它们。
填充数据表时,可以从数据库中选择数据,从文件中读取数据,或在代码中手工填充,
Rows
集合会包含这些检索出来的数据。
Columns
集合包含已经添加到表中的
DataColumn
实例,它们定义了数据的模式,例如数据类型、是否可为空和默认值等。
Constraints
集合可以用惟一或主键码约束来填充。
数据表使用模式信息的一个示例是在
DataGrid(
详见第
22
章
)
中显示数据。
DataGrid
控件使用属性
(
例如列的数据类型
)
来确定该列应使用什么控件。数据库中的
bit
列在
DataGrid
中显示为一个复选框。如果列在数据库模式中定义为
NOT NULL
,那么该列就存储在
DataColumn
中,以便在用户试图移出数据行时测试该列。
表的架构或结构由列和约束表示。使用 DataColumn 对象以及 ForeignKeyConstraint 和 UniqueConstraint 对象定义 DataTable 的架构。表中的列可以映射到数据源中的列、包含从表达式计算所得的值、自动递增它们的值,或包含主键值。
数据列
DataColumn
DataColumn
对象定义了数据表中某列的属性,例如该列的数据类型,该列是否为只读,以及其他属性。列可以在代码中创建,或者由运行库自动生成。
在创建一个列时,给它指定名称是很有用的,否则运行库就会为该列生成一个名称,其格式是
Columnn
,
其中
n
是一个递增的数字。
列的数据类型可以在构造函数中提供,也可以通过设置
DataType
属性来指定。把数据加载到数据表中后,就不能改变列的数据类型了,否则会抛出
ArgumentException
异常。
创建的数据列可以包含表
21-3
所示的
.NET Framework
数据类型。
表
21-3
一旦创建好,就要给
DataColumn
对象设置其他属性,例如该列是否可为空或者设置默认值。下面的代码段显示了给
DataColumn
设置的一些常见选项:
DataColumn customerID = new DataColumn("CustomerID" , typeof(int));
customerID.AllowDBNull = false;
customerID.ReadOnly = false;
customerID.AutoIncrement = true;
customerID.AutoIncrementSeed = 1000;
DataColumn name = new DataColumn("Name" , typeof(string));
name.AllowDBNull = false;
name.Unique = true;
可以给
DataColumn
设置如表
21-4
所示的属性。
表
21-4
DataSet
由表、关系和约束的集合组成。在 ADO.NET 中,DataTable 对象用于表示 DataSet 中的表。DataTable
表示一个内存内关系数据的表;数据对于所处的基于 .NET 的应用程序来说是本地数据,但可从数据源(例如,使用 DataAdapter 的 Microsoft SQL Server)中导入。
DataSet
类是数据的脱机容器。它不包含数据库连接的概念,实际上存储在
DataSet
中的数据不一定来源于数据库,它可以是
CSV
文件中的记录,或是来自测量设备中的点读取。
数据集由一组数据表组成,每个表都有一些数据列和数据行。除了定义数据外,还可以在
DataSet
中定义表之间的链接。例如,我们常常要定义父
/
子关系
(
通常也称为主
/
从关系
)
。表中的一个记录
(
即
Order)
链接到另一个表的许多记录上
(
即
Order
_
Details)
,这种关系可以在
DataSet
中定义和导航,如图
21-4
所示。
图
21-4
下一节描述和
DataSet
一起使用的类。
数据表DataTable
DataTable 类是 .NET Framework 类库中 System.Data 命名空间的成员。您可以独立创建和使用
DataTable,也可以作为 DataSet 的成员创建和使用,而且 DataTable 对象也可以与其他 .NET Framework
对象(包括 DataView)一起使用。您可以通过 DataSet 对象的 Tables 属性来访问 DataSet 中表的集合。
数据表非常类似于物理数据库表,它由一些带有特定属性的列组成,可能包含
0
行或多行数据。数据表也可以定义主键码
(
可以是一个列或多个列
)
,列上也可以包含约束。这些信息在本章的其他部分称为“模式”。
为数据表定义模式有几种方式
(
把数据集当作一个整体
)
,这些在介绍了数据列和数据行后讨论。图
21-5
显示了一些可通过数据表访问的对象。
图
21-5
DataTable
对象
(
和
DataColumn)
可以附带任意多个扩展属性。这个集合可以用附属于对象的用户自定义信息来填充。例如,某个列有一个输入掩码,用于验证列的内容是否有效,比较规范的示例是
US
社会安全号。当数据在中间层中构造,要返回给客户机,进行某些处理时,最适合使用扩展的属性。例如,可以在扩展的属性
(
如
min
和
max)
中存储数字列的有效性标准,在验证用户输入时在
UI
层使用它们。
填充数据表时,可以从数据库中选择数据,从文件中读取数据,或在代码中手工填充,
Rows
集合会包含这些检索出来的数据。
Columns
集合包含已经添加到表中的
DataColumn
实例,它们定义了数据的模式,例如数据类型、是否可为空和默认值等。
Constraints
集合可以用惟一或主键码约束来填充。
数据表使用模式信息的一个示例是在
DataGrid(
详见第
22
章
)
中显示数据。
DataGrid
控件使用属性
(
例如列的数据类型
)
来确定该列应使用什么控件。数据库中的
bit
列在
DataGrid
中显示为一个复选框。如果列在数据库模式中定义为
NOT NULL
,那么该列就存储在
DataColumn
中,以便在用户试图移出数据行时测试该列。
表的架构或结构由列和约束表示。使用 DataColumn 对象以及 ForeignKeyConstraint 和 UniqueConstraint 对象定义 DataTable 的架构。表中的列可以映射到数据源中的列、包含从表达式计算所得的值、自动递增它们的值,或包含主键值。
数据列
DataColumn
DataColumn
对象定义了数据表中某列的属性,例如该列的数据类型,该列是否为只读,以及其他属性。列可以在代码中创建,或者由运行库自动生成。
在创建一个列时,给它指定名称是很有用的,否则运行库就会为该列生成一个名称,其格式是
Columnn
,
其中
n
是一个递增的数字。
列的数据类型可以在构造函数中提供,也可以通过设置
DataType
属性来指定。把数据加载到数据表中后,就不能改变列的数据类型了,否则会抛出
ArgumentException
异常。
创建的数据列可以包含表
21-3
所示的
.NET Framework
数据类型。
表
21-3
Boolean | Decimal | Int64 | TimeSpan |
Byte | Double | Sbyte | UInt16 |
Char | Int16 | Single | UInt32 |
DateTime | Int32 | String | UInt64 |
DataColumn
对象设置其他属性,例如该列是否可为空或者设置默认值。下面的代码段显示了给
DataColumn
设置的一些常见选项:
DataColumn customerID = new DataColumn("CustomerID" , typeof(int));
customerID.AllowDBNull = false;
customerID.ReadOnly = false;
customerID.AutoIncrement = true;
customerID.AutoIncrementSeed = 1000;
DataColumn name = new DataColumn("Name" , typeof(string));
name.AllowDBNull = false;
name.Unique = true;
可以给
DataColumn
设置如表
21-4
所示的属性。
表
21-4
属 性 | 说 明 |
AllowDBNull | 如果为 true ,该列就可以设置为 DBNull |
AutoIncrement | 定义自动生成的列值为一个递增的数字 |
AutoIncrementSeed | 定义 AutoIncrement 列最初的种子值 |
AutoIncrementStep | 用默认的步骤定义自动生成列值的步骤 |
Caption | 可以用于在屏幕上显示列名 |
ColumnMapping | 指定当 DataSet 通过调用 DataSet.WriteXml 来保存时,列如何映射到 XML 上 |
ColumnName | 列名。如果没有在构造函数中设置,就由运行库自动生成 |
DataType | 列的 System.Type 值 |
DefaultValue | 可以定义列的默认值 |
Expression | 该属性定义表达式用于所计算的列 |
相关文章推荐
- A-dataset、dataview、 datatable、 datacolum、datarow的关系
- dataset、dataview、 datatable、 datacolum、datarow的关系
- dataset、dataview、 datatable、 datacolum、datarow的关系
- B-dataset、dataview、 datatable、 datacolum、datarow的关系
- dataset、dataview、 datatable、 datacolum、datarow的关系
- dataset、dataview、 datatable、 datacolum、datarow的关系
- 关于DataSet、DataView、DataTable、DataRow、时间格式转换的一些用法
- DataSet,DataTable,DataView的关系及简单应用
- ADO.NET DataSet、DataTable、DataRow、DataView的学习
- DataTable,DataView,DataRowView等之间的关系
- DataTable,DataView,DataRowView,DefaultView与DataSet
- DataTable,DataSet,DataRow与DataView
- DataTable,DataView,DataRowView,DefaultView与DataSet
- 发布一个Dataset、Datatable、Datarow、Datarow[]、Dataview的查看工具(vs2003/vs2005)
- DataTable,DataView,DataRowView等之间的关系
- DataTable,DataView,DataRowView,DefaultView与DataSet
- DataTable,DataView,DataRowView,DefaultView与DataSet
- DataTable,DataView,DataRowView等之间的关系
- DataTable,DataView,DataRowView,DefaultView与DataSet
- DataTable,DataView,DataRowView等之间的关系