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
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
type OleDbDataAdapter = class
inherit DbDataAdapter
interface IDataAdapter
interface IDbDataAdapter
interface ICloneable
type OleDbDataAdapter = class
inherit DbDataAdapter
interface IDbDataAdapter
interface IDataAdapter
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 和 OleDbDataAdapterOleDbConnection ,從 Access 資料來源中選取記錄,並使用選取的資料列填入 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 填入資料。 如需詳細資訊,請參閱 將現有的條件約束新增至資料集。
請注意,某些包含 MSDataShape 提供者的 OLE DB 提供者不會傳回基表或主鍵資訊。 因此, OleDbDataAdapter 無法在任何建立 DataTable 的 上正確設定 PrimaryKey 屬性。 在這些情況下,您應該明確指定 中 DataSet 資料表的主鍵。
OleDbDataAdapter也包含 SelectCommand 、 InsertCommand 、 DeleteCommand 、 UpdateCommand 和 TableMappings 屬性,有助於載入和更新資料。
當您建立 的 OleDbDataAdapter 實例時,屬性會設定為其初始值。 如需這些值的清單,請參閱建 OleDbDataAdapter 構函式。
建構函式
OleDbDataAdapter() |
初始化 OleDbDataAdapter 類別的新執行個體。 |
OleDbDataAdapter(OleDbCommand) |
使用指定 OleDbDataAdapter 做為 OleDbCommand 屬性,初始化 SelectCommand 類別的新執行個體。 |
OleDbDataAdapter(String, OleDbConnection) |
使用 OleDbDataAdapter,初始化 SelectCommand 類別的新執行個體。 |
OleDbDataAdapter(String, String) |
使用 OleDbDataAdapter,初始化 SelectCommand 類別的新執行個體。 |
欄位
DefaultSourceTableName |
資料表對應之 DataAdapter 物件所使用的預設名稱。 (繼承來源 DbDataAdapter) |
屬性
AcceptChangesDuringFill |
取得或設定值,指出在任何一種 Fill 作業期間,當 DataRow 新增至 DataTable 之後,是否要在其上呼叫 AcceptChanges()。 (繼承來源 DataAdapter) |
AcceptChangesDuringUpdate |
取得或設定在 AcceptChanges() 期間是否呼叫 Update(DataSet)。 (繼承來源 DataAdapter) |
CanRaiseEvents |
取得值,指出元件是否能引發事件。 (繼承來源 Component) |
Container |
取得包含 IContainer 的 Component。 (繼承來源 Component) |
ContinueUpdateOnError |
取得或設定數值,指定當資料列更新期間發生錯誤時,是否產生例外狀況。 (繼承來源 DataAdapter) |
DeleteCommand |
取得或設定 SQL 陳述式或預存程序以從資料集中刪除資料錄。 |
DesignMode |
取得值,指出 Component 目前是否處於設計模式。 (繼承來源 Component) |
Events |
取得附加在這個 Component 上的事件處理常式清單。 (繼承來源 Component) |
FillCommandBehavior |
取得或設定用來填入資料配接器 (Adapter) 之命令的行為。 (繼承來源 DbDataAdapter) |
FillLoadOption |
取得或設定 LoadOption,決定配接器如何從 DataTable 填入 DbDataReader。 (繼承來源 DataAdapter) |
InsertCommand |
取得或設定 SQL 陳述式或預存程序,用來插入新記錄到資料來源。 |
MissingMappingAction |
判斷在傳入的資料不具有相符的資料表或資料行時要採取的動作。 (繼承來源 DataAdapter) |
MissingSchemaAction |
判斷在現有 DataSet 結構描述 (Schema) 與傳入的資料不相符時要採取的動作。 (繼承來源 DataAdapter) |
ReturnProviderSpecificTypes |
取得或設定 |
SelectCommand |
取得或設定用來在資料來源中選取資料錄的 SQL 陳述式或預存程序。 |
Site | (繼承來源 Component) |
TableMappings |
取得集合,這個集合提供來源資料表與 DataTable 之間的主要對應。 (繼承來源 DataAdapter) |
UpdateBatchSize |
取得或設定值,其啟用或停用批次處理支援,並指定可於批次中執行的命令數目。 (繼承來源 DbDataAdapter) |
UpdateCommand |
取得或設定用來在資料來源中更新記錄的 SQL 陳述式或預存程序。 |
方法
事件
Disposed |
當 Dispose() 方法的呼叫處置元件時,就會發生。 (繼承來源 Component) |
FillError |
當填入作業期間發生錯誤時傳回。 (繼承來源 DbDataAdapter) |
RowUpdated |
發生在已經針對資料來源執行命令後的 Update(DataSet) 期間。 系統會嘗試進行更新。 因此便發生這個事件。 |
RowUpdating |
發生在已經針對資料來源執行命令前的 Update(DataSet) 期間。 系統會嘗試進行更新。 因此便發生這個事件。 |
明確介面實作
ICloneable.Clone() |
如需這個成員的說明,請參閱 Clone()。 |
IDataAdapter.TableMappings |
取得集合,指出來源資料表如何對應至資料集資料表。 (繼承來源 DataAdapter) |
IDbDataAdapter.DeleteCommand |
如需這個成員的說明,請參閱 DeleteCommand。 |
IDbDataAdapter.InsertCommand |
如需這個成員的說明,請參閱 InsertCommand。 |
IDbDataAdapter.SelectCommand |
如需這個成員的說明,請參閱 SelectCommand。 |
IDbDataAdapter.UpdateCommand |
如需這個成員的說明,請參閱 UpdateCommand。 |