OleDbDataAdapter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表一組資料指令及資料庫連線,用於填充 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
- 繼承
- 屬性
- 實作
範例
以下範例使用 OleDbCommand、 OleDbDataAdapter 和 OleDbConnection,從存取資料來源中選取紀錄,並將選取的列填入 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 來源的橋樑,用於擷取與儲存資料。 透過 OleDbDataAdapter 將 Fill 資料從資料來源載入 DataSet至 ,並透過將 Update 先前所做的 DataSet 變更傳送回資料來源,來提供此橋接。
當 填 OleDbDataAdapter 入 時 DataSet,若回傳資料尚未存在,則會為回傳資料建立相應的表格和欄位。 然而,除非 MissingSchemaAction 將屬性設為 AddWithKey,否則隱式建立的結構中不會包含主鍵資訊。 你也可以先 OleDbDataAdapter 建立 的結構 DataSet結構,包含主鍵資訊,然後再用 來填充資料 FillSchema。 欲了解更多資訊,請參閱 「將現有約束加入資料集」。
請注意,部分 OLE DB 提供者,包括 MSDataShape 提供者,不會回傳基底表或主鍵資訊。 因此,無法 OleDbDataAdapter 正確設定 PrimaryKey 任何所創造 DataTable的屬性。 在這種情況下,你應該明確指定 . 中資料表 DataSet的主鍵。
同時 OleDbDataAdapter 也包含 SelectCommand、 InsertCommand、 DeleteCommand、 UpdateCommand及 TableMappings 屬性,以便載入與更新資料。
當你建立 的 OleDbDataAdapter實例時,屬性會設定為初始值。 如需這些值的清單,請參閱建構函式 OleDbDataAdapter 。
建構函式
| 名稱 | Description |
|---|---|
| OleDbDataAdapter() |
初始化 OleDbDataAdapter 類別的新執行個體。 |
| OleDbDataAdapter(OleDbCommand) |
初始化一個以指定OleDbCommandSelectCommand屬性為屬性的新類別實例OleDbDataAdapter。 |
| OleDbDataAdapter(String, OleDbConnection) |
初始化一個新的類別實例OleDbDataAdapter。SelectCommand |
| OleDbDataAdapter(String, String) |
初始化一個新的類別實例OleDbDataAdapter。SelectCommand |
欄位
| 名稱 | 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 |
取得或設定方法應 |
| SelectCommand |
取得或設定一個 SQL 陳述式或儲存程序,用於選擇資料來源中的紀錄。 |
| Site | (繼承來源 Component) |
| TableMappings |
取得一個集合,提供來源資料表與 DataTable之間的主要映射。 (繼承來源 DataAdapter) |
| UpdateBatchSize |
取得或設定一個值,啟用或停用批次處理支援,並指定批次中可執行的指令數量。 (繼承來源 DbDataAdapter) |
| UpdateCommand |
取得或設定一個 SQL 陳述式或儲存程序,用於更新資料來源中的記錄。 |
方法
事件
| 名稱 | 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。 |