OleDbDataAdapter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表一組資料指令及資料庫連線,用於填充 DataSet 及更新資料來源。
public ref class OleDbDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable, System::Data::IDbDataAdapter
public ref class OleDbDataAdapter sealed : 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
type OleDbDataAdapter = class
inherit DbDataAdapter
interface IDbDataAdapter
interface IDataAdapter
interface ICloneable
Public NotInheritable Class OleDbDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDbDataAdapter
Public NotInheritable Class OleDbDataAdapter
Inherits DbDataAdapter
Implements ICloneable
- 繼承
- 實作
範例
以下範例使用 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) |
初始化一個以指定OleDbDataAdapterOleDbCommand屬性為屬性的新類別實例SelectCommand。 |
| OleDbDataAdapter(String, OleDbConnection) |
初始化一個新的類別實例OleDbDataAdapter。SelectCommand |
| OleDbDataAdapter(String, String) |
初始化一個新的類別實例OleDbDataAdapter。SelectCommand |
欄位
| 名稱 | Description |
|---|---|
| DefaultSourceTableName |
物件用於資料表映射的預設名稱 DataAdapter 。 (繼承來源 DbDataAdapter) |
屬性
| 名稱 | Description |
|---|---|
| AcceptChangesDuringFill |
在任何AcceptChanges()加入 時DataRow,會取得或設定一個值,DataTable表示是否在 上被呼叫。 (繼承來源 DataAdapter) |
| AcceptChangesDuringUpdate |
在 中 被呼叫 時,若 被呼叫AcceptChanges(),則 得到或設定 Update(DataSet) 。 (繼承來源 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。 |