DataSet 类

 

命名空间:  System.Data
程序集:  System.Data(在 System.Data.dll 中)

C#
1 [SerializableAttribute]
2 public class DataSet : MarshalByValueComponent, IListSource, 
3     IXmlSerializable, ISupportInitializeNotification, ISupportInitialize, ISerializable

 

DataSet 类型公开以下成员。

 名称说明
公共方法 由 XNA Framework 提供支持DataSet()初始化 DataSet 类的新实例。
公共方法 由 XNA Framework 提供支持DataSet(String)用给定名称初始化 DataSet 类的新实例。
受保护的方法DataSet(SerializationInfo, StreamingContext)基础结构。初始化具有给定序列化信息和上下文的 DataSet 类的新实例。
受保护的方法DataSet(SerializationInfo, StreamingContext, Boolean)基础结构。初始化 DataSet 类的新实例。

 名称说明
公共属性 由 XNA Framework 提供支持CaseSensitive获取或设置一个值,该值指示 DataTable 对象中的字符串比较是否区分大小写。
公共属性 由 XNA Framework 提供支持Container获取组件的容器。 (继承自 MarshalByValueComponent。)
公共属性 由 XNA Framework 提供支持DataSetName获取或设置当前 DataSet 的名称。
公共属性 由 XNA Framework 提供支持DefaultViewManager获取 DataSet 所包含的数据的自定义视图,以允许使用自定义的 DataViewManager 进行筛选、搜索和导航。
公共属性 由 XNA Framework 提供支持DesignMode获取指示组件当前是否处于设计模式的值。 (继承自 MarshalByValueComponent。)
公共属性 由 XNA Framework 提供支持EnforceConstraints获取或设置一个值,该值指示在尝试执行任何更新操作时是否遵循约束规则。
受保护的属性 由 XNA Framework 提供支持Events获取附加到该组件的事件处理程序的列表。 (继承自 MarshalByValueComponent。)
公共属性 由 XNA Framework 提供支持ExtendedProperties获取与 DataSet 相关的自定义用户信息的集合。
公共属性 由 XNA Framework 提供支持HasErrors获取一个值,指示在此 DataSet 中的任何 DataTable 对象中是否存在错误。
公共属性 由 XNA Framework 提供支持IsInitialized获取一个值,该值表明是否初始化 DataSet
公共属性 由 XNA Framework 提供支持Locale获取或设置用于比较表中字符串的区域设置信息。
公共属性 由 XNA Framework 提供支持Namespace获取或设置 DataSet 的命名空间。
公共属性 由 XNA Framework 提供支持Prefix获取或设置一个 XML 前缀,该前缀是 DataSet 的命名空间的别名。
公共属性 由 XNA Framework 提供支持Relations获取用于将表链接起来并允许从父表浏览到子表的关系的集合。
公共属性RemotingFormat为远程处理期间使用的 DataSet 获取或设置 SerializationFormat
公共属性 由 XNA Framework 提供支持SchemaSerializationMode获取或设置 DataSet 的 SchemaSerializationMode
公共属性 由 XNA Framework 提供支持Site获取或设置 DataSet 的 System.ComponentModel.ISite (重写 MarshalByValueComponent.Site。)
公共属性 由 XNA Framework 提供支持Tables获取包含在 DataSet 中的表的集合。

 名称说明
公共方法 由 XNA Framework 提供支持AcceptChanges提交自加载此 DataSet 或上次调用 AcceptChanges 以来对其进行的所有更改。
公共方法 由 XNA Framework 提供支持BeginInit开始初始化在窗体上使用或由另一个组件使用的 DataSet 初始化发生在运行时。
公共方法 由 XNA Framework 提供支持Clear通过移除所有表中的所有行来清除任何数据的 DataSet
公共方法 由 XNA Framework 提供支持Clone复制 DataSet 的结构,包括所有 DataTable 架构、关系和约束。 不要复制任何数据。
公共方法 由 XNA Framework 提供支持Copy复制该 DataSet 的结构和数据。
公共方法 由 XNA Framework 提供支持CreateDataReader()为每个 DataTable 返回带有一个结果集的 DataTableReader,顺序与 Tables 集合中表的显示顺序相同。
公共方法 由 XNA Framework 提供支持CreateDataReader(DataTable[])为每个 DataTable 返回带有一个结果集的 DataTableReader
受保护的方法 由 XNA Framework 提供支持DetermineSchemaSerializationMode(XmlReader)确定 DataSet 的 SchemaSerializationMode
受保护的方法DetermineSchemaSerializationMode(SerializationInfo, StreamingContext)确定 DataSet 的 SchemaSerializationMode
公共方法 由 XNA Framework 提供支持Dispose()释放由 MarshalByValueComponent 使用的所有资源。 (继承自 MarshalByValueComponent。)
受保护的方法 由 XNA Framework 提供支持Dispose(Boolean)释放由 MarshalByValueComponent 占用的非托管资源,还可以另外再释放托管资源。 (继承自MarshalByValueComponent。)
公共方法 由 XNA Framework 提供支持EndInit结束在窗体上使用或由另一个组件使用的 DataSet 的初始化。 初始化发生在运行时。
公共方法 由 XNA Framework 提供支持Equals(Object)确定指定的 Object 是否等于当前的 Object (继承自 Object。)
受保护的方法 由 XNA Framework 提供支持Finalize允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 MarshalByValueComponent。)
公共方法 由 XNA Framework 提供支持GetChanges()获取 DataSet 的副本,该副本包含自加载以来或自上次调用 AcceptChanges 以来对该数据集进行的所有更改。
公共方法 由 XNA Framework 提供支持GetChanges(DataRowState)获取由 DataRowState 筛选的 DataSet 的副本,该副本包含上次加载以来或调用 AcceptChanges 以来对该数据集进行的所有更改。
公共方法 静态成员 由 XNA Framework 提供支持GetDataSetSchema基础结构。获取数据集的 XmlSchemaSet 的副本。
公共方法 由 XNA Framework 提供支持GetHashCode用作特定类型的哈希函数。 (继承自 Object。)
公共方法GetObjectData用序列化 DataSet 所需的数据填充序列化信息对象。
受保护的方法 由 XNA Framework 提供支持GetSchemaSerializable基础结构。返回一个可序列化的 XMLSchema 实例。
受保护的方法GetSerializationData基础结构。从二进制或 XML 流反序列化表数据。
公共方法 由 XNA Framework 提供支持GetService获取 IServiceProvider 的实施者。 (继承自 MarshalByValueComponent。)
公共方法 由 XNA Framework 提供支持GetType获取当前实例的 Type (继承自 Object。)
公共方法 由 XNA Framework 提供支持GetXml返回存储在 DataSet 中的数据的 XML 表示形式。
公共方法 由 XNA Framework 提供支持GetXmlSchema返回存储在 DataSet 中的数据的 XML 表示形式的 XML 架构。
公共方法 由 XNA Framework 提供支持HasChanges()获取一个值,该值指示 DataSet 是否有更改,包括新增行、已删除的行或已修改的行。
公共方法 由 XNA Framework 提供支持HasChanges(DataRowState)获取一个值,该值指示 DataSet 是否有 DataRowState 被筛选的更改,包括新增行、已删除的行或已修改的行。
公共方法 由 XNA Framework 提供支持InferXmlSchema(Stream, String[])将指定 Stream 中的 XML 架构应用于 DataSet
公共方法 由 XNA Framework 提供支持InferXmlSchema(String, String[])将指定文件中的 XML 架构应用于 DataSet
公共方法 由 XNA Framework 提供支持InferXmlSchema(TextReader, String[])将指定 TextReader 中的 XML 架构应用于 DataSet
公共方法 由 XNA Framework 提供支持InferXmlSchema(XmlReader, String[])将指定 XmlReader 中的 XML 架构应用于 DataSet
受保护的方法 由 XNA Framework 提供支持InitializeDerivedDataSet基础结构。从二进制或 XML 流反序列化数据集的所有表数据。
受保护的方法IsBinarySerialized检查 DataSet 的序列化表示形式的格式。
公共方法 由 XNA Framework 提供支持Load(IDataReader, LoadOption, DataTable[])使用提供的 IDataReader 以数据源的值填充 DataSet,同时使用 DataTable 实例的数组提供架构和命名空间信息。
公共方法 由 XNA Framework 提供支持Load(IDataReader, LoadOption, String[])使用所提供的 IDataReader,并使用字符串数组为 DataSet 中的表提供名称,从而用来自数据源的值填充 DataSet
公共方法 由 XNA Framework 提供支持Load(IDataReader, LoadOption, FillErrorEventHandler, DataTable[])使用提供的 IDataReader 以数据源的值填充 DataSet,同时使用 DataTable 实例的数组提供架构和命名空间信息。
受保护的方法 由 XNA Framework 提供支持MemberwiseClone创建当前 Object 的浅表副本。 (继承自 Object。)
公共方法 由 XNA Framework 提供支持Merge(DataRow[])将 DataRow 对象数组合并到当前的 DataSet 中。
公共方法 由 XNA Framework 提供支持Merge(DataSet)将指定的 DataSet 及其架构合并到当前 DataSet 中。
公共方法 由 XNA Framework 提供支持Merge(DataTable)将指定的 DataTable 及其架构合并到当前 DataSet 中。
公共方法 由 XNA Framework 提供支持Merge(DataSet, Boolean)将指定的 DataSet 及其架构合并到当前 DataSet 中,在此过程中,将根据给定的参数保留或放弃在此 DataSet 中进行的任何更改。
公共方法 由 XNA Framework 提供支持Merge(DataRow[], Boolean, MissingSchemaAction)将 DataRow 对象数组合并到当前的 DataSet 中,在此过程中,将根据给定的参数保留或放弃在 DataSet 中进行的更改并处理不兼容的架构。
公共方法 由 XNA Framework 提供支持Merge(DataSet, Boolean, MissingSchemaAction)将指定的 DataSet 及其架构与当前的 DataSet 合并,在此过程中,将根据给定的参数保留或放弃在当前 DataSet 中的更改并处理不兼容的架构。
公共方法 由 XNA Framework 提供支持Merge(DataTable, Boolean, MissingSchemaAction)将指定的 DataTable 及其架构合并到当前的 DataSet 中,在此过程中,将根据给定的参数保留或放弃在 DataSet 中进行的更改并处理不兼容的架构。
受保护的方法 由 XNA Framework 提供支持OnPropertyChanging引发 OnPropertyChanging 事件。
受保护的方法 由 XNA Framework 提供支持OnRemoveRelation当从 DataTable 中移除 DataRelation 对象时发生。
受保护的方法 由 XNA Framework 提供支持OnRemoveTable当从 DataSet 中移除 DataTable 时发生。
受保护的方法 由 XNA Framework 提供支持RaisePropertyChanging发送指定的 DataSet 属性将要更改的通知。
公共方法 由 XNA Framework 提供支持ReadXml(Stream)使用指定的 System.IO.Stream 将 XML 架构和数据读入 DataSet
公共方法 由 XNA Framework 提供支持ReadXml(String)使用指定的文件将 XML 架构和数据读入 DataSet
公共方法 由 XNA Framework 提供支持ReadXml(TextReader)使用指定的 System.IO.TextReader 将 XML 架构和数据读入 DataSet
公共方法 由 XNA Framework 提供支持ReadXml(XmlReader)使用指定的 System.Xml.XmlReader 将 XML 架构和数据读入 DataSet
公共方法 由 XNA Framework 提供支持ReadXml(Stream, XmlReadMode)使用指定的 System.IO.Stream 和 XmlReadMode 将 XML 架构和数据读入 DataSet
公共方法 由 XNA Framework 提供支持ReadXml(String, XmlReadMode)使用指定的文件和 XmlReadMode 将 XML 架构和数据读入 DataSet
公共方法 由 XNA Framework 提供支持ReadXml(TextReader, XmlReadMode)使用指定的 System.IO.TextReader 和 XmlReadMode 将 XML 架构和数据读入 DataSet
公共方法 由 XNA Framework 提供支持ReadXml(XmlReader, XmlReadMode)使用指定的 System.Xml.XmlReader 和 XmlReadMode 将 XML 架构和数据读入 DataSet
公共方法 由 XNA Framework 提供支持ReadXmlSchema(Stream)从指定的 Stream 中将 XML 架构读入 DataSet
公共方法 由 XNA Framework 提供支持ReadXmlSchema(String)从指定的文件中将 XML 架构读入 DataSet
公共方法 由 XNA Framework 提供支持ReadXmlSchema(TextReader)从指定的 TextReader 中将 XML 架构读入 DataSet
公共方法 由 XNA Framework 提供支持ReadXmlSchema(XmlReader)从指定的 XmlReader 中将 XML 架构读入 DataSet
受保护的方法 由 XNA Framework 提供支持ReadXmlSerializable基础结构。忽略特性并返回一个空的数据集。
公共方法 由 XNA Framework 提供支持RejectChanges回滚自创建 DataSet 以来或上次调用 DataSet.AcceptChanges 以来对其进行的所有更改。
公共方法 由 XNA Framework 提供支持Reset将 DataSet 重置为其初始状态。 子类应重写 Reset,以便将 DataSet 还原到其原始状态。
受保护的方法 由 XNA Framework 提供支持ShouldSerializeRelations获取一个值,该值指示是否应该保持 Relations 属性。
受保护的方法 由 XNA Framework 提供支持ShouldSerializeTables获取一个值,该值指示是否应该保持 Tables 属性。
公共方法 由 XNA Framework 提供支持ToString返回包含 Component 的名称的 String(如果有)。 不应重写此方法。 (继承自 MarshalByValueComponent。)
公共方法 由 XNA Framework 提供支持WriteXml(Stream)使用指定的 System.IO.Stream 为 DataSet 写当前数据。
公共方法 由 XNA Framework 提供支持WriteXml(String)将 DataSet 的当前数据写入指定的文件。
公共方法 由 XNA Framework 提供支持WriteXml(TextWriter)使用指定的 TextWriter 写入 DataSet 的当前数据。
公共方法 由 XNA Framework 提供支持WriteXml(XmlWriter)将 DataSet 的当前数据写入指定的 XmlWriter
公共方法 由 XNA Framework 提供支持WriteXml(Stream, XmlWriteMode)使用指定的 System.IO.Stream 和 XmlWriteMode 为 DataSet 写当前数据,还可以选择写架构。 若要写架构,请将mode 参数的值设置为 WriteSchema
公共方法 由 XNA Framework 提供支持WriteXml(String, XmlWriteMode)使用指定的 XmlWriteMode 将 DataSet 的当前数据写入指定的文件,还可以选择将架构写入指定的文件。 若要写架构,请将 mode 参数的值设置为 WriteSchema
公共方法 由 XNA Framework 提供支持WriteXml(TextWriter, XmlWriteMode)使用指定的 TextWriter 和 XmlWriteMode 写入 DataSet 的当前数据,还可以选择写入架构。 若要写架构,请将 mode参数的值设置为 WriteSchema
公共方法 由 XNA Framework 提供支持WriteXml(XmlWriter, XmlWriteMode)使用指定的 XmlWriter 和 XmlWriteMode 写入 DataSet 的当前数据,还可以选择写入架构。 若要写架构,请将 mode参数的值设置为 WriteSchema
公共方法 由 XNA Framework 提供支持WriteXmlSchema(Stream)将 DataSet 结构作为一个 XML 架构写入指定的 System.IO.Stream 对象。
公共方法 由 XNA Framework 提供支持WriteXmlSchema(String)将 XML 架构形式的 DataSet 结构写入文件。
公共方法 由 XNA Framework 提供支持WriteXmlSchema(TextWriter)将 DataSet 结构作为一个 XML 架构写入指定的 TextWriter 对象。
公共方法 由 XNA Framework 提供支持WriteXmlSchema(XmlWriter)将 XML 架构形式的 DataSet 结构写入 XmlWriter 对象。
公共方法WriteXmlSchema(Stream, Converter<Type, String>)将 DataSet 结构作为一个 XML 架构写入指定的 System.IO.Stream 对象。
公共方法WriteXmlSchema(String, Converter<Type, String>)将 XML 架构形式的 DataSet 结构写入文件。
公共方法WriteXmlSchema(TextWriter, Converter<Type, String>)将 DataSet 结构作为一个 XML 架构写入指定的 TextWriter
公共方法WriteXmlSchema(XmlWriter, Converter<Type, String>)将 DataSet 结构作为一个 XML 架构写入指定的 XmlWriter

 名称说明
公共事件 由 XNA Framework 提供支持Disposed添加事件处理程序以侦听组件上的 Disposed 事件。 (继承自 MarshalByValueComponent。)
公共事件 由 XNA Framework 提供支持Initialized在初始化 DataSet 后发生。
公共事件 由 XNA Framework 提供支持MergeFailed当目标和源 DataRow 的主键值相同且 EnforceConstraints 设置为真时发生。

 名称说明
显式接口实现 私有属性 由 XNA Framework 提供支持IListSource.ContainsListCollection有关此成员的说明,请参见 IListSource.ContainsListCollection
显式接口实现 私有方法 由 XNA Framework 提供支持IListSource.GetList有关此成员的说明,请参见 IListSource.GetList
显式接口实现 私有方法 由 XNA Framework 提供支持IXmlSerializable.GetSchema有关此成员的说明,请参见 IXmlSerializable.GetSchema
显式接口实现 私有方法 由 XNA Framework 提供支持IXmlSerializable.ReadXml有关此成员的说明,请参见 IXmlSerializable.ReadXml
显式接口实现 私有方法 由 XNA Framework 提供支持IXmlSerializable.WriteXml有关此成员的说明,请参见 IXmlSerializable.WriteXml

DataSet 是 ADO.NET 结构的主要组件,它是从数据源中检索到的数据在内存中的缓存。 DataSet 由一组 DataTable 对象组成,您可使这些对象与 DataRelation 对象互相关联。 您还可通过使用 UniqueConstraint 和 ForeignKeyConstraint 对象在 DataSet 中实施数据完整性。 有关使用 DataSet 对象的详细信息,请参见 DataSet、DataTable 和 DataView (ADO.NET)

尽管 DataTable 对象中包含数据,但是 DataRelationCollection 允许您遍览表的层次结构。 这些表包含在通过 Tables 属性访问的 DataTableCollection 中。 当访问 DataTable 对象时,请注意它们是按条件区分大小写的。 例如,如果一个 DataTable 被命名为“mydatatable”,另一个被命名为“Mydatatable”,则用于搜索其中一个表的字符串被认为是区分大小写的。 但是,如果“mydatatable”存在而“Mydatatable”不存在,则认为该搜索字符串不区分大小写。 有关使用 DataTable 对象的更多信息,请参见创建数据表 (ADO.NET)

DataSet 可将数据和架构作为 XML 文档进行读写。 数据和架构可通过 HTTP 传输,并在支持 XML 的任何平台上被任何应用程序使用。 可使用 WriteXmlSchema 方法将架构保存为 XML 架构,并且可以使用 WriteXml 方法保存架构和数据。 若要读取既包含架构也包含数据的 XML 文档,请使用 ReadXml 方法。

在典型的多层实现中,用于创建和刷新 DataSet 并依次更新原始数据的步骤包括:

  1. 通过 DataAdapter 使用数据源中的数据生成和填充 DataSet 中的每个 DataTable

  2. 通过添加、更新或删除 DataRow 对象更改单个 DataTable 对象中的数据。

  3. 调用 GetChanges 方法以创建只反映对数据进行的更改的第二个 DataSet

  4. 调用 DataAdapter 的 Update 方法,并将第二个 DataSet 作为参数传递。

  5. 调用 Merge 方法将第二个 DataSet 中的更改合并到第一个中。

  6. 针对 DataSet 调用 AcceptChanges 或者,调用 RejectChanges 以取消更改。

注意 注意

DataSet 和 DataTable 对象从 MarshalByValueComponent 继承而来,并支持用于远程处理的 ISerializable 接口。 这些是仅有的可以远程处理的 ADO.NET 对象。

注意 注意

继承自 DataSet 的类不是由垃圾回收器完成的,原因是在 DataSet 中已取消终结器。 派生类可以在其构造函数中调用 ReRegisterForFinalize 方法以允许垃圾回收器完成该类。

下面的示例由几种方法组成,这些方法互相结合,从 Northwind 数据库中创建并填充 DataSet

C#
 
 1 using System;
 2 using System.Data;
 3 using System.Data.SqlClient;
 4 
 5 namespace Microsoft.AdoNet.DataSetDemo
 6 {
 7     class NorthwindDataSet
 8     {
 9         static void Main()
10         {
11             string connectionString = GetConnectionString();
12             ConnectToData(connectionString);
13         }
14 
15         private static void ConnectToData(string connectionString)
16         {
17             //Create a SqlConnection to the Northwind database.
18             using (SqlConnection connection =
19                        new SqlConnection(connectionString))
20             {
21                 //Create a SqlDataAdapter for the Suppliers table.
22                 SqlDataAdapter adapter = new SqlDataAdapter();
23 
24                 // A table mapping names the DataTable.
25                 adapter.TableMappings.Add("Table", "Suppliers");
26 
27                 // Open the connection.
28                 connection.Open();
29                 Console.WriteLine("The SqlConnection is open.");
30 
31                 // Create a SqlCommand to retrieve Suppliers data.
32                 SqlCommand command = new SqlCommand(
33                     "SELECT SupplierID, CompanyName FROM dbo.Suppliers;",
34                     connection);
35                 command.CommandType = CommandType.Text;
36 
37                 // Set the SqlDataAdapter's SelectCommand.
38                 adapter.SelectCommand = command;
39 
40                 // Fill the DataSet.
41                 DataSet dataSet = new DataSet("Suppliers");
42                 adapter.Fill(dataSet);
43 
44                 // Create a second Adapter and Command to get
45                 // the Products table, a child table of Suppliers. 
46                 SqlDataAdapter productsAdapter = new SqlDataAdapter();
47                 productsAdapter.TableMappings.Add("Table", "Products");
48 
49                 SqlCommand productsCommand = new SqlCommand(
50                     "SELECT ProductID, SupplierID FROM dbo.Products;",
51                     connection);
52                 productsAdapter.SelectCommand = productsCommand;
53 
54                 // Fill the DataSet.
55                 productsAdapter.Fill(dataSet);
56 
57                 // Close the connection.
58                 connection.Close();
59                 Console.WriteLine("The SqlConnection is closed.");
60 
61                 // Create a DataRelation to link the two tables
62                 // based on the SupplierID.
63                 DataColumn parentColumn =
64                     dataSet.Tables["Suppliers"].Columns["SupplierID"];
65                 DataColumn childColumn =
66                     dataSet.Tables["Products"].Columns["SupplierID"];
67                 DataRelation relation =
68                     new System.Data.DataRelation("SuppliersProducts",
69                     parentColumn, childColumn);
70                 dataSet.Relations.Add(relation);
71                 Console.WriteLine(
72                     "The {0} DataRelation has been created.",
73                     relation.RelationName);
74             }
75         }
76 
77         static private string GetConnectionString()
78         {
79             // To avoid storing the connection string in your code, 
80             // you can retrieve it from a configuration file.
81             return "Data Source=(local);Initial Catalog=Northwind;"
82                 + "Integrated Security=SSPI";
83         }
84     }
85 }

 

.NET Framework
受以下版本支持:4、3.5、3.0、2.0、1.1、1.0
.NET Framework Client Profile
受以下版本支持:4、3.5 SP1

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2

 

 

.NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

该类型对于多线程读操作是安全的。 您必须使任何写操作同步。

转载于:https://www.cnblogs.com/wangyajun/archive/2012/05/12/2497002.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值