共用方式為


OleDbDataAdapter 類別

定義

代表一組資料指令及資料庫連線,用於填充 DataSet 及更新資料來源。

public ref class OleDbDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable
public ref class OleDbDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable, System::Data::IDbDataAdapter
public ref class OleDbDataAdapter sealed : System::Data::Common::DbDataAdapter
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("OleDbConnection is not AOT-compatible.")]
public sealed class OleDbDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
public sealed class OleDbDataAdapter : System.Data.Common.DbDataAdapter, ICloneable, System.Data.IDbDataAdapter
public sealed class OleDbDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
public sealed class OleDbDataAdapter : System.Data.Common.DbDataAdapter
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("OleDbConnection is not AOT-compatible.")>]
type OleDbDataAdapter = class
    inherit DbDataAdapter
    interface IDataAdapter
    interface IDbDataAdapter
    interface ICloneable
type OleDbDataAdapter = class
    inherit DbDataAdapter
    interface IDbDataAdapter
    interface IDataAdapter
    interface ICloneable
type OleDbDataAdapter = class
    inherit DbDataAdapter
    interface IDataAdapter
    interface IDbDataAdapter
    interface ICloneable
Public NotInheritable Class OleDbDataAdapter
Inherits DbDataAdapter
Implements ICloneable
Public NotInheritable Class OleDbDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDbDataAdapter
Public NotInheritable Class OleDbDataAdapter
Inherits DbDataAdapter
繼承
屬性
實作

範例

以下範例使用 OleDbCommandOleDbDataAdapterOleDbConnection,從存取資料來源中選取紀錄,並將選取的列填入 a DataSet 。 填充 DataSet 物隨後會被歸還。 為達成此目的,方法會傳遞一個初始化的 DataSet、一個連接字串,以及一個查詢字串,該查詢字串是 SQL 的 SELECT 語句。

public static OleDbDataAdapter CreateDataAdapter(string selectCommand,
    OleDbConnection connection)
{
    OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connection);

    adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;

    // Create the Insert, Update and Delete commands.
    adapter.InsertCommand = new OleDbCommand(
        "INSERT INTO Customers (CustomerID, CompanyName) " +
        "VALUES (?, ?)");

    adapter.UpdateCommand = new OleDbCommand(
        "UPDATE Customers SET CustomerID = ?, CompanyName = ? " +
        "WHERE CustomerID = ?");

    adapter.DeleteCommand = new OleDbCommand(
        "DELETE FROM Customers WHERE CustomerID = ?");

    // Create the parameters.
    adapter.InsertCommand.Parameters.Add("@CustomerID",
        OleDbType.Char, 5, "CustomerID");
    adapter.InsertCommand.Parameters.Add("@CompanyName",
        OleDbType.VarChar, 40, "CompanyName");

    adapter.UpdateCommand.Parameters.Add("@CustomerID",
        OleDbType.Char, 5, "CustomerID");
    adapter.UpdateCommand.Parameters.Add("@CompanyName",
        OleDbType.VarChar, 40, "CompanyName");
    adapter.UpdateCommand.Parameters.Add("@oldCustomerID",
        OleDbType.Char, 5, "CustomerID").SourceVersion =
        DataRowVersion.Original;

    adapter.DeleteCommand.Parameters.Add("@CustomerID",
        OleDbType.Char, 5, "CustomerID").SourceVersion =
        DataRowVersion.Original;

    return adapter;
}
Public Function CreateDataAdapter(ByVal selectCommand As String, _
    ByVal connection As OleDbConnection) As OleDbDataAdapter

    Dim adapter As OleDbDataAdapter = _
        New OleDbDataAdapter(selectCommand, connection)

    adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey

    ' Create the commands.
    adapter.InsertCommand = New OleDbCommand( _
        "INSERT INTO Customers (CustomerID, CompanyName) " & _
         "VALUES (?, ?)")

    adapter.UpdateCommand = New OleDbCommand( _
        "UPDATE Customers SET CustomerID = ?, CompanyName = ? " & _
        "WHERE CustomerID = ?")

    adapter.DeleteCommand = New OleDbCommand( _
        "DELETE FROM Customers WHERE CustomerID = ?")

    ' Create the parameters.
    adapter.InsertCommand.Parameters.Add( _
        "@CustomerID", OleDbType.Char, 5, "CustomerID")
    adapter.InsertCommand.Parameters.Add( _
        "@CompanyName", OleDbType.VarChar, 40, "CompanyName")

    adapter.UpdateCommand.Parameters.Add( _
        "@CustomerID", OleDbType.Char, 5, "CustomerID")
    adapter.UpdateCommand.Parameters.Add( _
        "@CompanyName", OleDbType.VarChar, 40, "CompanyName")
    adapter.UpdateCommand.Parameters.Add( _
        "@oldCustomerID", OleDbType.Char, 5, "CustomerID").SourceVersion = _
        DataRowVersion.Original

    adapter.DeleteCommand.Parameters.Add( _
        "@CustomerID", OleDbType.Char, 5, "CustomerID").SourceVersion = _
        DataRowVersion.Original

    Return adapter
End Function

備註

OleDbDataAdapter 作為連接資料 DataSet 來源的橋樑,用於擷取與儲存資料。 透過 OleDbDataAdapterFill 資料從資料來源載入 DataSet至 ,並透過將 Update 先前所做的 DataSet 變更傳送回資料來源,來提供此橋接。

當 填 OleDbDataAdapter 入 時 DataSet,若回傳資料尚未存在,則會為回傳資料建立相應的表格和欄位。 然而,除非 MissingSchemaAction 將屬性設為 AddWithKey,否則隱式建立的結構中不會包含主鍵資訊。 你也可以先 OleDbDataAdapter 建立 的結構 DataSet結構,包含主鍵資訊,然後再用 來填充資料 FillSchema。 欲了解更多資訊,請參閱 「將現有約束加入資料集」。

請注意,部分 OLE DB 提供者,包括 MSDataShape 提供者,不會回傳基底表或主鍵資訊。 因此,無法 OleDbDataAdapter 正確設定 PrimaryKey 任何所創造 DataTable的屬性。 在這種情況下,你應該明確指定 . 中資料表 DataSet的主鍵。

同時 OleDbDataAdapter 也包含 SelectCommandInsertCommandDeleteCommandUpdateCommandTableMappings 屬性,以便載入與更新資料。

當你建立 的 OleDbDataAdapter實例時,屬性會設定為初始值。 如需這些值的清單,請參閱建構函式 OleDbDataAdapter

建構函式

名稱 Description
OleDbDataAdapter()

初始化 OleDbDataAdapter 類別的新執行個體。

OleDbDataAdapter(OleDbCommand)

初始化一個以指定OleDbCommandSelectCommand屬性為屬性的新類別實例OleDbDataAdapter

OleDbDataAdapter(String, OleDbConnection)

初始化一個新的類別實例OleDbDataAdapterSelectCommand

OleDbDataAdapter(String, String)

初始化一個新的類別實例OleDbDataAdapterSelectCommand

欄位

名稱 Description
DefaultSourceTableName

物件用於資料表映射的預設名稱 DataAdapter

(繼承來源 DbDataAdapter)

屬性

名稱 Description
AcceptChangesDuringFill

在任何填充操作中加入 時DataTable,會取得或設定一個值,AcceptChanges()表示是否在 上被呼叫DataRow

(繼承來源 DataAdapter)
AcceptChangesDuringUpdate

在 中 被呼叫 時,若 被呼叫Update(DataSet),則 得到或設定 AcceptChanges()

(繼承來源 DataAdapter)
CanRaiseEvents

會得到一個值,表示該元件是否能引發事件。

(繼承來源 Component)
Container

得到 IContainer 包含 Component的 。

(繼承來源 Component)
ContinueUpdateOnError

取得或設定一個值,指定在資料列更新中遇到錯誤時是否要產生例外。

(繼承來源 DataAdapter)
DeleteCommand

取得或設定一個 SQL 陳述式或儲存程序,用於從資料集中刪除紀錄。

DesignMode

會得到一個值,表示目前 Component 是否處於設計模式。

(繼承來源 Component)
Events

會取得與此 Component連結的事件處理程序清單。

(繼承來源 Component)
FillCommandBehavior

接收或設定用來填充資料介面卡的指令行為。

(繼承來源 DbDataAdapter)
FillLoadOption

取得或設定 ,LoadOption決定轉接器如何從 中填充 。DataTableDbDataReader

(繼承來源 DataAdapter)
InsertCommand

取得或設定一個 SQL 陳述式或儲存程序,用於將新紀錄插入資料來源。

MissingMappingAction

當輸入資料沒有相符的資料表或欄位時,決定應採取的行動。

(繼承來源 DataAdapter)
MissingSchemaAction

當現有 DataSet 結構與輸入資料不符時,決定應採取的行動。

(繼承來源 DataAdapter)
ReturnProviderSpecificTypes

取得或設定方法應 Fill 回傳提供者特定值或常見符合 CLS 的值。

(繼承來源 DataAdapter)
SelectCommand

取得或設定一個 SQL 陳述式或儲存程序,用於選擇資料來源中的紀錄。

Site

取得或設定 ISiteComponent

(繼承來源 Component)
TableMappings

取得一個集合,提供來源資料表與 DataTable之間的主要映射。

(繼承來源 DataAdapter)
UpdateBatchSize

取得或設定一個值,啟用或停用批次處理支援,並指定批次中可執行的指令數量。

(繼承來源 DbDataAdapter)
UpdateCommand

取得或設定一個 SQL 陳述式或儲存程序,用於更新資料來源中的記錄。

方法

名稱 Description
AddToBatch(IDbCommand)

會把 a IDbCommand 加到目前的批次裡。

(繼承來源 DbDataAdapter)
ClearBatch()

從批次中移除所有 IDbCommand 物件。

(繼承來源 DbDataAdapter)
CloneInternals()
已淘汰.
已淘汰.
已淘汰.
已淘汰.

會建立這個實例 DataAdapter的副本。

(繼承來源 DataAdapter)
CreateObjRef(Type)

建立一個物件,包含產生代理伺服器所需的所有相關資訊,用於與遠端物件通訊。

(繼承來源 MarshalByRefObject)
CreateRowUpdatedEvent(DataRow, IDbCommand, StatementType, DataTableMapping)

初始化 RowUpdatedEventArgs 類別的新執行個體。

(繼承來源 DbDataAdapter)
CreateRowUpdatingEvent(DataRow, IDbCommand, StatementType, DataTableMapping)

初始化 RowUpdatingEventArgs 類別的新執行個體。

(繼承來源 DbDataAdapter)
CreateTableMappings()

會產生一個新的 DataTableMappingCollection

(繼承來源 DataAdapter)
Dispose()

釋放所有由 Component.

(繼承來源 Component)
Dispose(Boolean)

釋放 未管理的資源, DbDataAdapter 並可選擇性地釋放受管理資源。

(繼承來源 DbDataAdapter)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
ExecuteBatch()

執行目前的批次。

(繼承來源 DbDataAdapter)
Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

在指定範圍內 DataSet 新增或刷新資料列,以配合資料來源的資料表 DataSet 名稱、指令字串及指令行為。

(繼承來源 DbDataAdapter)
Fill(DataSet, Int32, Int32, String)

在指定範圍內 DataSet 新增或刷新資料列,以 DataSet 配合資料來源中的 and DataTable 名稱。

(繼承來源 DbDataAdapter)
Fill(DataSet, Object, String)

新增或刷新 中 的DataSet列,以符合指定的 DataSetADO 物件及來源資料表名稱,使 ADO RecordsetRecord 或物件中的列與之相符。

Fill(DataSet, String, IDataReader, Int32, Int32)

在指定範圍內DataSet新增或刷新資料列,以配合資料來源中的列,使用、 DataSetDataTable、 和 IDataReader 名稱。

(繼承來源 DbDataAdapter)
Fill(DataSet, String)

使用 DataSetDataTable 名稱新增或刷新資料來源中的列,使其與資料來源中的列DataSet相符。

(繼承來源 DbDataAdapter)
Fill(DataSet)

新增或刷新 DataSet.

(繼承來源 DbDataAdapter)
Fill(DataTable, IDataReader)

使用 指定的 DataTableIDataReader 名稱,新增或刷新 a DataTable 中的列以匹配資料來源中的列。

(繼承來源 DbDataAdapter)
Fill(DataTable, IDbCommand, CommandBehavior)

使用 、 DataTableIDbCommandCommandBehavior和 ,新增或刷新 a DataTable 中的列以匹配資料來源中的列。

(繼承來源 DbDataAdapter)
Fill(DataTable, Object)

在 A DataTable 中新增或刷新資料列,使其與指定DataTable且 ADO 物件的RecordsetRecord列數相符。

Fill(DataTable)

在指定範圍內 DataSet 新增或刷新資料列,以符合資料來源中使用 DataTable 名稱的列。

(繼承來源 DbDataAdapter)
Fill(DataTable[], IDataReader, Int32, Int32)

在物件集合 DataTable 中新增或刷新指定範圍內的列,以匹配資料來源中的列。

(繼承來源 DataAdapter)
Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

在指定範圍內 DataSet 新增或刷新資料列,以 DataSet 配合資料來源中的 and DataTable 名稱。

(繼承來源 DbDataAdapter)
Fill(Int32, Int32, DataTable[])

從指定記錄開始,從指定紀錄開始,新增或刷新一個或多個 DataTable 物件的列,以匹配資料來源中的列,並取得最多最多記錄數。

(繼承來源 DbDataAdapter)
FillSchema(DataSet, SchemaType, IDbCommand, String, CommandBehavior)

在指定DataSet值中加入 aDataTable,並根據指定 SchemaType配置結構以符合資料來源的結構。

(繼承來源 DbDataAdapter)
FillSchema(DataSet, SchemaType, String, IDataReader)

將 a DataTable 加入指定的 DataSet

(繼承來源 DataAdapter)
FillSchema(DataSet, SchemaType, String)

將 a DataTable 加入指定的 DataSet 資料,並根據指定的 SchemaTypeDataTable配置結構以符合資料來源中的結構。

(繼承來源 DbDataAdapter)
FillSchema(DataSet, SchemaType)

在指定的DataSet資料中新增一個DataTable命名的「資料表」,並根據指定的SchemaType資料配置結構以符合資料來源中的結構。

(繼承來源 DbDataAdapter)
FillSchema(DataTable, SchemaType, IDataReader)

將 a DataTable 加入指定的 DataSet

(繼承來源 DataAdapter)
FillSchema(DataTable, SchemaType, IDbCommand, CommandBehavior)

根據指定的 SchemaType、 指令字串及CommandBehavior值配置 的結構DataTable

(繼承來源 DbDataAdapter)
FillSchema(DataTable, SchemaType)

根據指定的 SchemaType配置 的結構DataTable

(繼承來源 DbDataAdapter)
GetBatchedParameter(Int32, Int32)

從目前批次中的指令回傳 a IDataParameter

(繼承來源 DbDataAdapter)
GetBatchedRecordsAffected(Int32, Int32, Exception)

回傳一次更新嘗試的資訊,包含較大的批次更新。

(繼承來源 DbDataAdapter)
GetFillParameters()

執行 SQL SELECT 語句時,取得使用者設定的參數。

(繼承來源 DbDataAdapter)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetLifetimeService()
已淘汰.

取得目前控制此實例生命週期政策的終身服務物件。

(繼承來源 MarshalByRefObject)
GetService(Type)

回傳一個由 或Component其 所提供的Container服務的物件。

(繼承來源 Component)
GetType()

取得目前實例的 Type

(繼承來源 Object)
HasTableMappings()

表示是否已創造 a DataTableMappingCollection

(繼承來源 DataAdapter)
InitializeBatching()

初始 DbDataAdapter化 .

(繼承來源 DbDataAdapter)
InitializeLifetimeService()
已淘汰.

取得一個終身服務物件以控制此實例的終身政策。

(繼承來源 MarshalByRefObject)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
MemberwiseClone(Boolean)

建立一個 MarshalByRefObject 目前物件的淺層複製品。

(繼承來源 MarshalByRefObject)
OnFillError(FillErrorEventArgs)

引發 FillError 事件。

(繼承來源 DbDataAdapter)
OnRowUpdated(RowUpdatedEventArgs)

會觸發 RowUpdated .NET 資料提供者的事件。

(繼承來源 DbDataAdapter)
OnRowUpdating(RowUpdatingEventArgs)

會觸發 RowUpdating .NET 資料提供者的事件。

(繼承來源 DbDataAdapter)
ResetFillLoadOption()

重置FillLoadOption為預設狀態並導致 Fill(DataSet)AcceptChangesDuringFill

(繼承來源 DataAdapter)
ShouldSerializeAcceptChangesDuringFill()

決定該屬性是否 AcceptChangesDuringFill 應該被保留。

(繼承來源 DataAdapter)
ShouldSerializeFillLoadOption()

決定該屬性是否 FillLoadOption 應該被保留。

(繼承來源 DataAdapter)
ShouldSerializeTableMappings()

判斷是否存在一個或多個 DataTableMapping 物件,並決定是否應該被持久化。

(繼承來源 DataAdapter)
TerminateBatching()

結束批次處理 DbDataAdapter

(繼承來源 DbDataAdapter)
ToString()

回傳 String 包含 的名稱 Component(若有的話)。 此方法不應被覆蓋。

(繼承來源 Component)
Update(DataRow[], DataTableMapping)

透過對指定物件陣列 DataRow 中插入、更新或刪除的每一列執行相應的 INSERT、UPDATE 或 DELETE 語句來更新資料庫中的值。

(繼承來源 DbDataAdapter)
Update(DataRow[])

透過執行指定陣列 DataSet中每個插入、更新或刪除的列的 INSERT、UPDATE 或 DELETE 語句,更新資料庫中的值。

(繼承來源 DbDataAdapter)
Update(DataSet, String)

透過對指定DataTable名稱的 中DataSet每個插入、更新或刪除的列執行相應的 INSERT、UPDATE 或 DELETE 語句,更新資料庫中的值。

(繼承來源 DbDataAdapter)
Update(DataSet)

透過執行指定、更新或刪除的每一列 DataSet的 INSERT、UPDATE 或 DELETE 語句,更新資料庫中的值。

(繼承來源 DbDataAdapter)
Update(DataTable)

透過執行指定、更新或刪除的每一列 DataTable的 INSERT、UPDATE 或 DELETE 語句,更新資料庫中的值。

(繼承來源 DbDataAdapter)

事件

名稱 Description
Disposed

當元件被呼叫方法 Dispose() 時會發生。

(繼承來源 Component)
FillError

當填充操作發生錯誤時,會回傳此訊息。

(繼承來源 DbDataAdapter)
RowUpdated

發生在 Update(DataSet) 對資料來源執行指令後。 嘗試更新。 因此,事件發生了。

RowUpdating

發生在 Update(DataSet) 對資料來源執行指令之前。 嘗試更新。 因此,事件發生了。

明確介面實作

名稱 Description
ICloneable.Clone()

關於此成員的描述,請參見 Clone()

IDataAdapter.TableMappings

取得一個集合,指示來源資料表如何映射到資料集資料表。

(繼承來源 DataAdapter)
IDbDataAdapter.DeleteCommand

關於此成員的描述,請參見 DeleteCommand

IDbDataAdapter.InsertCommand

關於此成員的描述,請參見 InsertCommand

IDbDataAdapter.SelectCommand

關於此成員的描述,請參見 SelectCommand

IDbDataAdapter.UpdateCommand

關於此成員的描述,請參見 UpdateCommand

適用於

另請參閱