数据表是一个临时保存数据的网格虚拟表,通常表示内存中数据的一个集合,是ADO dot net 库中的核心对象之一,可以被应用在VB和ASP上,具有微软风格的用户界面,无需代码即可简单绑定数据库,并与DataSet和DataView等其他对象一同使用。
基本信息
DataTable 是一个临时保存数据的网格虚拟表(表示内存
中数据的一个表)。DataTable是
ADO dot net 库中的核心对象。它可以被应用在 VB 和 ASP 上。它无须代码就可以简单的绑定数据库。它具有
微软风格的
用户界面。
其他使用DataTable的对象包括DataSet和DataView。
注意事项
当访问DataTable对象时,请注意它们是按条件区分大小写的。例如,如果一个DataTable被命名为“mydatatable”,另一个被命名为“Mydatatable”,则用于搜索其中一个表的
字符串被认为是区分大小写的。但是,如果“mydatatable”存在而“Mydatatable”不存在,则认为该搜索字符串不区分大小写。一个DataSet可以包含数个DataTable对象,它们具有相同的TableName
属性值和不同的Namespace属性值。有关使用DataTable对象的更多信息。
用法介绍
创建 DataTable
DataTable 表示一个内存内关系数据的表,可以独立创建和使用,也可以由其他
.NET Framework 对象使用,最常见的情况是作为 DataSet 的成员使用。
可以使用相应的 DataTable 构造函数创建 DataTable 对象。 可以通过使用 Add 方法将其添加到 DataTable 对象的 Tables 集合中,将其添加到 DataSet 中。
也可以通过以下方法创建 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 中时,该表会得到一个从“Table”(表示 Table0)开始递增的默认名称 Tablen。
DataTable 架构定义
表的架构(即结构)由列和约束表示。 使用 DataColumn 对象以及 ForeignKeyConstraint 和 UniqueConstraint 对象定义 DataTable 的架构。 表中的列可以映射到
数据源中的列、包含从
表达式计算所得的值、自动递增它们的值,或包含
主键值。
按名称引用表中的列、关系和约束是区分大小写的。 因此,一个表中可以存在两个或两个以上名称相同(但大小写不同)的列、关系或约束。 例如,您可以有 Col1 和 col1。 在这种情况下,按名称引用某一列就必须完全符合该列名的大小写,否则会引发异常。 例如,如果表 myTable 包含列 Col1 和列 col1,就要以 的形式来按名称引用 Col1,而以 的形式按名称引用col1。 尝试以 的形式来引用其中某列就会产生异常。
如果某个特定名称只存在一个列、关系或约束,则不应用区分大小写规则。 也就是说,如果表中没有其他的列、关系或约束对象与该特定列、关系或约束对象的名称匹配,您就可以使用任意的大小写来按名称引用该对象,并且不会引发异常。 例如,如果表中只有 Col1,您就可以使用 来引用。
在 DataSet 中创建 DataTable 之后,您执行的活动可以与使用
数据库中的表时执行的活动相同。 您可以添加、查看、编辑和删除表中的数据;可以监视错误和事件;并且可以查询表中的数据。 在修改 DataTable 中的数据时,您也可以验证更改是否正确,并决定是否以编程方式接受更改或拒绝更改。
构造函数
初始化 DataTable 类的新实例。
重载此成员。有关此成员的完整信息(包括语法、用法和示例),请单击重载列表中的相应名称。
属性
显式接口实现
方法
扩展方法
DataTable 事件
实例化添加列
DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
dr.ItemArray = objs;
dt.Rows.Add(dr);
this.dataGridView1.DataSource = dt;
使用技巧
数据复制
把datatable的结构全部数据或部分
数据复制到一个新的datatable
datatable复制表结构:我们可以使用.clone()方法;
DataTable oldDT = GetDataTable();
DataTable newDT = oldDT.Clone();
把datatable中的所有信息复制到一个新的datatable,包括结构和数据:
DataTable oldDT = GetDataTable();
DataTable newDT = oldDT.Copy();
复制datatable中的某一行:我们可以使用.ImportRow()方法;
DataTable oldDT = GetDataTable();
DataTable newDT = new DataTable();
newDT.ImportRow(oldDT.Rows[1]);把原来datatable中的第二行数据复制到新的datatable中。