OleDbCommandBuilder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
自動產生單一資料表命令,可用來調解對 DataSet 的變更和相關的資料庫。 此類別無法獲得繼承。
public ref class OleDbCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public ref class OleDbCommandBuilder sealed : System::ComponentModel::Component
public sealed class OleDbCommandBuilder : System.Data.Common.DbCommandBuilder
public sealed class OleDbCommandBuilder : System.ComponentModel.Component
type OleDbCommandBuilder = class
inherit DbCommandBuilder
type OleDbCommandBuilder = class
inherit Component
Public NotInheritable Class OleDbCommandBuilder
Inherits DbCommandBuilder
Public NotInheritable Class OleDbCommandBuilder
Inherits Component
- 繼承
- 繼承
範例
下列範例會 OleDbCommand使用 和 OleDbDataAdapterOleDbConnection,從數據源中選取數據列。 此範例會傳遞初始化DataSet的 、連接字串、SQL SELECT 語句的查詢字串,以及數據源數據表名稱的字串。 然後,此範例會 OleDbCommandBuilder建立 。
public static DataSet UpdateRows(string connectionString,
string queryString, string tableName)
{
DataSet dataSet = new DataSet();
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(queryString, connection);
OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
connection.Open();
adapter.Fill(dataSet, tableName);
//code to modify data in DataSet here
cb.GetDeleteCommand();
//Without the OleDbCommandBuilder this line would fail
adapter.Update(dataSet, tableName);
connection.Close();
}
return dataSet;
}
Public Shared Function UpdateRows(ByVal connectionString As String, _
ByVal queryString As String, ByVal tableName As String) As DataSet
Dim dataSet As New DataSet()
Using connection As New OleDbConnection(connectionString)
Dim adapter As New OleDbDataAdapter()
adapter.SelectCommand = New OleDbCommand(queryString, connection)
Dim builder As New OleDbCommandBuilder(adapter)
connection.Open()
adapter.Fill(dataSet, tableName)
' Code to modify data in DataSet here
builder.GetUpdateCommand()
' Without the OleDbCommandBuilder this line would fail.
adapter.Update(dataSet, tableName)
End Using
Return dataSet
End Function
備註
OleDbDataAdapter不會自動產生與相關聯數據源協調對 DataSet 所做的變更所需的 SQL 語句。 不過,如果您設定 SelectCommand 的屬性,您可以建立 對象來自動產生單一OleDbCommandBuilder數據表更新的 OleDbDataAdapterSQL 語句。 然後,您未設定的任何其他 SQL 語句都會由 OleDbCommandBuilder產生。
每當您設定 DataAdapter 屬性時,會將OleDbCommandBuilder本身註冊為事件的接聽程式RowUpdating。 您一次只能將一個 OleDbDataAdapter 或 OleDbCommandBuilder 物件彼此建立關聯。
若要產生 INSERT、UPDATE 或 DELETE 語句,會 OleDbCommandBuilder 使用 SelectCommand 屬性自動擷取一組必要的元數據。 如果您在擷取元數據之後變更 SelectCommand ,例如在第一次更新之後,您應該呼叫 RefreshSchema 方法來更新元數據。
OleDbCommandBuilder也會使用 所參考的ConnectionSelectCommand、 CommandTimeout和 Transaction 屬性。 如果使用者修改了其中一或多個屬性,或SelectCommand本身被取代,則應該呼叫 RefreshSchema 。 否則 InsertCommand, UpdateCommand和 DeleteCommand 屬性會保留其先前的值。
如果您呼叫 Dispose,則會 OleDbCommandBuilder 與 OleDbDataAdapter解除關聯,而且不再使用產生的命令。
建構函式
OleDbCommandBuilder() |
初始化 OleDbCommandBuilder 類別的新執行個體。 |
OleDbCommandBuilder(OleDbDataAdapter) |
使用關聯的 OleDbCommandBuilder 物件來初始化 OleDbDataAdapter 類別的新執行個體。 |
屬性
CanRaiseEvents |
取得值,指出元件是否能引發事件。 (繼承來源 Component) |
CatalogLocation |
取得或設定 DbCommandBuilder 類別執行個體的 CatalogLocation。 (繼承來源 DbCommandBuilder) |
CatalogSeparator |
取得或設定作為 DbCommandBuilder 類別執行個體之目錄分隔符號使用的字串。 (繼承來源 DbCommandBuilder) |
ConflictOption |
指定 ConflictOption 所要使用的 DbCommandBuilder。 (繼承來源 DbCommandBuilder) |
Container |
取得包含 IContainer 的 Component。 (繼承來源 Component) |
DataAdapter |
取得或設定會自動產生 SQL 陳述式的 OleDbDataAdapter 物件。 |
DesignMode |
取得值,指出 Component 目前是否處於設計模式。 (繼承來源 Component) |
Events |
取得附加在這個 Component 上的事件處理常式清單。 (繼承來源 Component) |
QuotePrefix |
取得或設定開始字元 (一個或多個),當指定其名稱包含空白或保留語彙基元 (Token) 之類字元的資料庫物件時,就可以使用。 |
QuotePrefix |
取得或設定開始字元 (一個或多個),當指定其名稱包含空白或保留語彙基元 (Token) 之類字元的資料庫物件時,就可以使用。 (繼承來源 DbCommandBuilder) |
QuoteSuffix |
取得或設定結束字元 (一個或多個),當指定其名稱包含空白或保留語彙基元之類字元的資料庫物件時,就可以使用。 |
QuoteSuffix |
取得或設定結束字元 (一個或多個),當指定其名稱包含空白或保留語彙基元之類字元的資料庫物件時,就可以使用。 (繼承來源 DbCommandBuilder) |
SchemaSeparator |
取得或設定用於結構描述識別項和任何其他識別項間之分隔符號的字元。 (繼承來源 DbCommandBuilder) |
SetAllValues |
指定更新陳述式中包含所有資料行值或只包含已變更的資料行值。 (繼承來源 DbCommandBuilder) |
Site | (繼承來源 Component) |
方法
事件
Disposed |
當 Dispose() 方法的呼叫處置元件時,就會發生。 (繼承來源 Component) |