DataTable类用于存储数据表。注意:以DataTable对象存储的表不一定要映射到数据库中的表。DataTable可能包含表中数据的一个子集,该子集可以只是包含数据库表的部分行、列,可能是由数据库中多个表组合而成的数据,还可能是所有这些的组合,这取决于获得数据的查询语句。当然,通常DataTable与数据库中的表匹配。
要获得完全填充的DataTable,可以使用数据阅读器。可访问包含数据的DataTable的行Rows、列Columns、约束Contraints和其他信息。
DataTable的另一个重点是如果处理数据修改。DataTable对象记录了对原始数据的修改,而不只是数据的当前状态。可以通过GetChanges()获得关于对DataTable的修改列表,通过AcceptChanges()接受已做的修改,通过RejectChanges()撤销所有的修改。
DataTable对象也暴露了很多事件,在应用程序中可以定制这些事件,如RowDeleted和ColumnChanged。
行的当前状态,即它是否被修改、删除或者发某种方式改变,可通过DataRowState属性访问。该属性的值为DataRowState类型,是包含所有可能行状态的枚举类型。