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 不會自動產生 SQL 陳述式,以將對 a DataSet 的變更與相關資料來源進行調和。 不過,如果你設定 SelectCommand 的屬性OleDbDataAdapter,可以建立OleDbCommandBuilder物件,自動產生單資料表更新的 SQL 語句。 然後,任何你未設定的額外 SQL 語句會由 OleDbCommandBuilder產生。
當你設定DataAdapter屬性時,它OleDbCommandBuilder會自動註冊為事件的監聽者RowUpdating。 你一次只能將其中一個 OleDbDataAdapter 或 OleDbCommandBuilder 物件彼此關聯起來。
為了產生 INSERT、UPDATE 或 DELETE 語句,會 OleDbCommandBuilder 使用 該 SelectCommand 屬性自動取得所需的元資料集合。 如果你在元資料取得後才更改, SelectCommand 例如第一次更新後,你應該呼叫 RefreshSchema 更新元資料的方法。
也 OleDbCommandBuilder 使用 Connection了 、 CommandTimeout以及 Transaction 所 SelectCommand參考的屬性。 如果這些屬性中有一個或多個被修改,或SelectCommand是本身被替換,使用者應該呼叫RefreshSchema。 否則 InsertCommand、 UpdateCommand、 和 DeleteCommand 屬性將保留先前的值。
如果你呼叫 Dispose,則 OleDbCommandBuilder 與 分離 OleDbDataAdapter,產生的指令不再使用。
建構函式
| 名稱 | Description |
|---|---|
| OleDbCommandBuilder() |
初始化 OleDbCommandBuilder 類別的新執行個體。 |
| OleDbCommandBuilder(OleDbDataAdapter) |
初始化一個帶有相關OleDbDataAdapter物件的新類別實例OleDbCommandBuilder。 |
屬性
| 名稱 | Description |
|---|---|
| CanRaiseEvents |
會得到一個值,表示該元件是否能引發事件。 (繼承來源 Component) |
| CatalogLocation |
取得或設定 CatalogLocation 該類別的實例 DbCommandBuilder 。 (繼承來源 DbCommandBuilder) |
| CatalogSeparator |
取得或設定一個字串,作為類別實例 DbCommandBuilder 的目錄分隔符。 (繼承來源 DbCommandBuilder) |
| ConflictOption |
指定 ConflictOption 要被 使用的 DbCommandBuilder。 (繼承來源 DbCommandBuilder) |
| Container |
得到 IContainer 包含 Component的 。 (繼承來源 Component) |
| DataAdapter |
取得或設定一個 OleDbDataAdapter 物件,該物件會自動產生 SQL 語句。 |
| DesignMode |
會得到一個值,表示目前 Component 是否處於設計模式。 (繼承來源 Component) |
| Events |
會取得與此 Component連結的事件處理程序清單。 (繼承來源 Component) |
| QuotePrefix |
取得或設定在指定資料庫物件(例如資料表或欄位)時,名稱包含空格或保留標記等字元的開頭字元。 |
| QuotePrefix |
取得或設定在指定資料庫物件(例如資料表或欄位)時,名稱包含空格或保留標記等字元的開頭字元。 (繼承來源 DbCommandBuilder) |
| QuoteSuffix |
在指定資料庫物件(例如資料表或欄位)時,取得或設定包含空格或保留標記等字元的結尾字元。 |
| QuoteSuffix |
在指定資料庫物件(例如資料表或欄位)時,取得或設定包含空格或保留標記等字元的結尾字元。 (繼承來源 DbCommandBuilder) |
| SchemaSeparator |
取得或設定用於結構識別碼與其他識別碼分隔符的字元。 (繼承來源 DbCommandBuilder) |
| SetAllValues |
指定更新語句中所有欄位值是否包含,或僅包含變更欄位。 (繼承來源 DbCommandBuilder) |
| Site | (繼承來源 Component) |
方法
事件
| 名稱 | Description |
|---|---|
| Disposed |
當元件被呼叫方法 Dispose() 時會發生。 (繼承來源 Component) |