【C#】DataSet.⽤法.
  DataSet 是C#中⽤来存储数据库数据的。其实,它的作⽤是在内存中模拟数据库。我们现实⽣活中的数据库从⼤到⼩的基本结构类似于:数据库实例,表,列,⾏。在C#语⾔中,我们在内存中也模拟出了⼀个这样的关系型数据模型。对应关系如下表:
数据库  DataSet
表    DataTable
列    DataColumn
⾏    DataRow
  有了这⼀样模拟之后,我们在操作数据库和内存的时候,就可以使⽤同样的思维模型了。
  DataSet 和 物理数据库是两个客体,要使这两个客体保持⼀致,就需要使⽤ DataAdapter 类来同步两个客体。⼀般来说操作流程是:使⽤ DataAdapter 把物理数据库中的数据填充到 DataSet 中的 DataTable ⾥。当我们对内存中的 DataSet 做了增、删、改操作后,可以使⽤ DataAdapter 同步回数据库。
  MSDN的描述如下:
1. 通过 DataAdapter 使⽤数据源中的数据⽣成和填充 DataSet 中的每个DataTable。
2. 通过添加、更新或删除 DataRow 对象更改单个 DataTable 对象中的数据。
3. 调⽤ GetChanges ⽅法以创建只反映对数据进⾏的更改的第⼆个DataSet。
4. 调⽤ DataAdapter 的 Update ⽅法,并将第⼆个 DataSet 作为参数传递。
5. 调⽤ Merge ⽅法将第⼆个 DataSet 中的更改合并到第⼀个中。
6. 针对 DataSet 调⽤ AcceptChanges。或者,调⽤ RejectChanges 以取消更改。
⼀、创建dataset
  1. 创建
  可以选择指定⼀个名称参数。如果没有为 DataSet 指定名称,则默认设置为“NewDataSet”。
DataSet customerOrders = new DataSet("CustomerOrders");
  2. 复制
  DataSet 的原样副本,其中包含架构、数据、⾏状态信息和⾏版本。 
DataSet copyDataSet = customerDataSet.Copy();
  创建包含现有 DataSet 的架构但仅包含已修改⾏的 DataSet。可以返回已修改的所有⾏或者指定特定的 DataRowState。
// Copy all changes.
DataSet changeDataSet = customerDataSet.GetChanges();
// Copy only new rows.
DataSet addedDataSet = customerDataSet.GetChanges(DataRowState.Added);
  仅复制 DataSet 的架构(即关系结构),⽽不复制任何⾏。可以使⽤ ImportRow 将⾏导⼊现有 DataTable。
DataSet germanyCustomers = customerDataSet.Clone();
⼆、向 DataSet 添加 DataTable
  我们可以创建 对象,并将其添加到现有 中。还可以使⽤ 和 属性为 DataTable 设置约束信息。
  以下⽰例构造⼀个 ,将⼀个新的 对象添加到该 中,然后将三个 对象添加到该表中。最后,该代码将⼀个列设置为主键列。
DataSet customerOrders = new DataSet("CustomerOrders");
DataTable ordersTable = customerOrders.Tables.Add("Orders");
DataColumn pkOrderID = ordersTable.Columns.Add("OrderID", typeof(Int32));
ordersTable.Columns.Add("OrderQuantity", typeof(Int32));
typeof的用法ordersTable.Columns.Add("CompanyName", typeof(string));
ordersTable.PrimaryKey = new DataColumn[] { pkOrderID };

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。