现在的位置: 首页 > 综合 > 正文

OracleDataAdapter 类

2014年09月05日 ⁄ 综合 ⁄ 共 2348字 ⁄ 字号 评论关闭

功能:表示用于填充 DataSet 和更新数据库的一组数据命令和一个数据库连接。 此类不能被继承。


DataSet 类

表示一个存放于内存中的数据缓存。

DataSet 构造函数

初始化 DataSet 类的新实例。

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

初始化 DataSet 类的新实例。

DataSet 构造函数的此实现不使用任何参数,它为新实例创建默认名称“NewDataSet”。

需要 DataSet 的名称以确保 DataSet 的
XML 表示形式始终有用于文档元素的名称,而文档元素在架构定义中是最高级别的元素。

下面的示例创建新的 DataSet,并向其中添加两个 DataTable 对象:

Private Sub CreateDataSet()
    Dim dataSet As DataSet = New DataSet

    ' Create two DataTable objects using a function.
    Dim table1 As DataTable = MakeTable("idTable1", "thing1")
    Dim table2 As DataTable = MakeTable("idTable2", "thing2")
    dataSet.Tables.Add(table1)
    dataSet.Tables.Add(table2)
    Console.WriteLine(dataSet.Tables.Count)
End Sub


Private Function MakeTable(c1Name As String, _
    c2Name As String) As DataTable
    Dim table As New DataTable

    ' Add two DataColumns
    Dim column As DataColumn = New DataColumn( _
        c1Name, System.Type.GetType("System.Integer"))
    table.Columns.Add(column)
    column = New DataColumn(c2Name, _
        System.Type.GetType("System.String"))
    MakeTable = table
End Function

DbDataAdapter.Fill 方法 (DataSet)

public override int Fill(
	DataSet dataSet
)
dataSet
类型:System.Data.DataSet
要用记录和架构(如果必要)填充的 DataSet

返回值

类型:System.Int32
已在 DataSet 中成功添加或刷新的行数。 这不包括受不返回行的语句影响的行。 

实现

IDataAdapter.Fill(DataSet)

注意:

Fill 方法使用 SELECT 语句从数据源中检索数据。 
Select 命令关联的 IDbConnection 对象必须有效,但不需要将其打开。
 如果调用 Fill 之前 IDbConnection 已关闭,则将其打开以检索数据,然后再将其关闭。 如果调用 Fill 之前连接已打开,它将保持打开状态。

如果在填充数据表时遇到错误或异常,则错误发生之前添加的行将保留在数据表中。 操作的剩余部分被中止。

如果命令不返回任何行,则不向 DataSet 中添加表,并且不引发异常。

如果 DbDataAdapter 对象在填充 DataTable 时遇到重复列,它将以“columnname1”、“columnname2”、“columnname3”这样依次排序的模式命名后面的列。 如果传入数据包含未命名的列,它们将按“Column1”、“Column2”的模式放在 DataSet 中。

当指定的查询返回多项结果时,每个返回查询的行的结果集都放置在单独的表中。 将整数值追加到指定的表名从而对其他结果集进行命名(例如“Table”、“Table1”、“Table2”等)。 如果某个查询不返回行,则不会为该查询创建表,因此,如果您先处理一个插入查询,然后再处理一个选择查询,这样由于为选择查询创建的表是第一个表,所以该表将被命名为“Table”。 使用列名和表名的应用程序应确保一定不要与这些命名模式发生冲突。

当用于填充 DataSet 的 SELECT 语句(例如批处理 SQL 语句)返回多项结果时,如果其中一项结果包含错误,则将跳过所有后面的结果并且不将它们添加到 DataSet 中。

当使用后面的 Fill 调用来刷新 DataSet 的内容时,必须满足以下两个条件:

  1. 该 SQL 语句应该与最初用来填充 DataSet 的语句匹配。

  2. 必须存在键列信息。

如果主键信息存在,则协调任何重复的行,并且这些重复行将只在与 DataSet 对应的 DataTable 中出现一次。 可以通过 FillSchema(通过指定 DataTable 的 PrimaryKey 属性),或者通过将 MissingSchemaAction 属性设置为 AddWithKey 来设置主键信息。

(参考自:http://msdn.microsoft.com/zh-cn/library/system.data.oracleclient.oracledataadapter(v=vs.110).aspx)

【上篇】
【下篇】

抱歉!评论已关闭.