DataTable 表示一个内存内关系数据的表,可以独立创建和使用,也可以由其他 .NET 框架对象使用,最常见的情况是作为 DataSet 的成员使用。
DataTable 对象可通过使用 DataTable 构造函数来创建,或者可通过将构造函数参数传递到 DataSet 的 Tables 属性的 Add 方法(它是一个 DataTableCollection)来创建。
DataTable 对象可通过使用 DataAdapter 对象的 Fill 方法或 FillSchema 方法在 DataSet 内创建,或者可使用 DataSet 的 ReadXml、ReadXmlSchema 或 InferXmlSchema 方法从预定义的或推断的 XML 架构中创建。请注意,将 DataTable 添加为一个 DataSet 的 Tables 集合的成员后,不能再将其添至任何其他 DataSet 的表的集合。
最初创建 DataTable 时,它是没有架构(结构)的。要定义表的架构,必须创建 DataColumn 对象并将其添至表的 Columns 集合。您也可以为表定义主键列,而且可以创建 Constraint 对象并将其添至表的 Constraints 集合。在为 DataTable 定义了架构之后,可通过将 DataRow 对象添至表的 Rows 集合来将数据行添加到表。
创建 DataTable 时,不需要为 TableName 属性提供值,您可以在其他时间指定属性,或者将其保留为空。但是,在将没有 TableName 值的表添至 DataSet 时,该表就会得到一个递增的默认名称 TableN,此名称以“Table”开头,从 Table0 开始。
注意 建议您在提供 TableName 值时避免使用“Table”或“TableN”的命名规则,因为您提供的名称可能会与 DataSet 中现有的默认表名称冲突。如果提供的名称已经存在,将引发异常。
以下示例创建 DataTable 对象的实例,并为其指定名称“Customers”。
[Visual Basic]
Dim workTable as DataTable = New DataTable("Customers")
[C#]
DataTable workTable = new DataTable("Customers");
以下示例创建 DataTable 实例,方法是:将其添至 DataSet 的 Tables 集合。
[Visual Basic]
Dim custDS As DataSet = New DataSet
Dim custTable As DataTable = custDS.Tables.Add("CustTable")
[C#]
DataSet custDS = new DataSet();
DataTable custTable = custDS.Tables.Add("CustTable");