断开连接层
作用:通过内存中的对象模型来构建关系数据。(在不与DBMS连接的情况下)
属性 | 作用 |
---|---|
CaseSensitive | 指示DataTable对象中的字符串笔记是否区分大小写 |
DataSetName | 表示DataSet的一个友好名,通常通过构造参数指定 |
EnforceConstraints | 获取或设置一个值,该值指示在尝试执行任何更新操作时是否遵循约束规则 |
HasErrors | 获取一个值,指示在此DataSet中任何DataTable对象中的数据行是否存在错误 |
RemotingFormat | 定义DataSet在传输时内容的序列化方式 |
方法 | 作用 |
---|---|
AcceptChanges() | 提交自加载此DataSet或上次调用此方法以来对其进行的所有更改 |
Clear() | 通过移除所有DataTable表中的所有行来清除任何DataSet数据 |
Clone() | 复制DataSet的结构,而不是DataSet的数据,包括所有DataTable架构、关系和约束 |
Copy() | 复制该DataSet的结构和数据 |
GetChanges() | 获取DataSet的副本,该副本包含自上次加载以来或自调用AcceptChanges()以来对数据集进行的所有更改。 |
HasChanges() | 获取一个值,该值指示DataSet是否更改,包括新增行、已删除的行或已修改的行 |
Merge() | 将指定的DataSet合并到当前的DataSet中 |
ReadXml() | 基于XML架构和从流中读取的数据,定义DataSet对象的结构并用数据填充它 |
RejectChanges() | 回滚自创建DataSet以来或上次调用AcceptChanges()以来对其进行的所有更改 |
WriteXml() | 把DataSet的内容写入一个有效的数据流 |
构建DataSet
//建立DataSet对象并添加一些属性
DataSet carsInventoryDS = new DataSet("Car Inventory");
carsInventoryDS.ExtendedProperties["TimeStamp"] = DataTime.Now;
carsInventoryDS.ExtendedProperties["DataSetID"] = Guid.NewGuid();
carsInventoryDS.ExtendedProperties["Company"] = "Mikko's Hot Tub Super Store";
DataColumn
表示DataTable中的一个单列。例如一个表需要4个DataColumn,一个DataColumn对应一列(CarID、Make、Color、PetName)
属性 | 作用 |
---|---|
AllowDBNull | 该属性用来指示对于表中的行,此列中是否允许空值,默认为true |
AutoIncrement、AutoIncrementSeed和AutoIncrementStep | 这些属性用来配置该列的自增行为,当需要确保列值的唯一性时将会非常有用。 |
Caption | 该属性用来获取或设置要显示的列的标题,它允许我们为数据库列名定义一个用户友好的版本 |
ColumnMapping | 该属性决定当使用DataSet.WriteXml()来把DataSet保存到XML文件时,该列将以什么样的形式呈现。可以把数据列写成XML元素、XML特性或文本的形式 |
ColumnName | 该属性用来获取或设置列集合中的列名。默认的列名格式是”Column”字符和(n+1)后缀的形式 |
DataType | 该属性定义了存储在列中的数据类型 |
DefaultValue | 该属性用来获取或设置在创建新行时列的默认值 |
Expression | 该属性用来获取或设置表达式,用于筛选行、计算列中的值或创建聚合列 |
Ordinal | 该属性用来以数字形式获取DataTable中列在Columns集合中的位置 |
ReadOnly | 该属性指示如果向表中添加了行,列是否还允许更改 |
Table | 该属性用来获取DataColumn所属的DataTable |
Unique | 该属性用来获取或设置一个值,指示列的每一行中的值是否必须是唯一/可重复的 |
代码:
static void FillDataSet(DataSet ds){
//建立对应AutoLot数据库Inventory表真实字段的数据列
DataColumn carIDColumn = new DataColumn( "CarID",typeof(int) )
carIDColumn.Caption = "Car ID";
carIDColumn.ReadOnly = true;
carIDColumn.AllowDBNull = false;
carIDColumn.Unique = true;
DataColumn carMakeColumn = new DataColumn("Make",typeof(string));
DataColumn carColorColumn = new DataColumn("Color",typeof(string));
DataColumn carPetNameColumn = new DataColumn("PetName",typeof(string));
carPetNameColumn.Caption = "Pet Name";
}
启用自增列:
//修改前面的carIDColumn
carIDColumn.AutoIncrement = true;
carIDColumn.AutoIncrementSeed = 0;
carIDColumn.AutoIncrementStep = 1;
说明:三个属性分别表示实现自增,指定列的起始值,指定每次增加的步进值。
最后使用dataTable对象.Columns.AddRange(….)添加DataColumn加入DataTable中