OdbcCommandBuilder 類別

定義

自動產生單一資料表命令,可用來調解對 DataSet 的變更和相關的資料來源。 此類別無法獲得繼承。

public ref class OdbcCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public ref class OdbcCommandBuilder sealed : System::ComponentModel::Component
public sealed class OdbcCommandBuilder : System.Data.Common.DbCommandBuilder
public sealed class OdbcCommandBuilder : System.ComponentModel.Component
type OdbcCommandBuilder = class
    inherit DbCommandBuilder
type OdbcCommandBuilder = class
    inherit Component
Public NotInheritable Class OdbcCommandBuilder
Inherits DbCommandBuilder
Public NotInheritable Class OdbcCommandBuilder
Inherits Component
繼承
繼承
OdbcCommandBuilder

範例

下列範例會搭配 和 OdbcConnection 使用 OdbcCommandOdbcDataAdapter ,從資料來源中選取資料列。 此範例會傳遞已初始化 DataSet 的 、連接字串、SQL SELECT 語句的查詢字串,以及資料來源資料表名稱的字串。 然後,此範例會 OdbcCommandBuilder 建立 。

public static DataSet SelectOdbcSrvRows(string connectionString,
    string queryString, string tableName)
{
    DataSet dataSet = new DataSet();
    using (OdbcConnection connection = new OdbcConnection(connectionString))
    {
        OdbcDataAdapter adapter = new OdbcDataAdapter();
        adapter.SelectCommand =
            new OdbcCommand(queryString, connection);
        OdbcCommandBuilder builder =
            new OdbcCommandBuilder(adapter);

        connection.Open();

        adapter.Fill(dataSet, tableName);

        //code to modify data in DataSet here

        //Without the OdbcCommandBuilder this line would fail
        adapter.Update(dataSet, tableName);
    }
    return dataSet;
}
Public Function SelectOdbcSrvRows( _
    ByVal connectionString As String, ByVal queryString As String, _
    ByVal tableName As String) As DataSet

    Dim dataSet As New DataSet()

    Using connection As New OdbcConnection(connectionString)
        Dim adapter As New OdbcDataAdapter()
        adapter.SelectCommand = _
            New OdbcCommand(queryString, connection)
        Dim builder As New OdbcCommandBuilder(adapter)

        connection.Open()

        adapter.Fill(dataSet, tableName)

        ' Code to modify data in DataSet here 

        ' Without the OdbcCommandBuilder this line would fail.
        adapter.Update(dataSet, tableName)
    End Using

    Return dataSet
End Function

備註

OdbcDataAdapter不會自動產生協調與 DataSet 資料來源相關聯 之 變更所需的 SQL 語句。 不過,您可以藉由設定 SelectCommand 的 屬性,建立物件來產生單一 OdbcCommandBuilder 資料表更新的 OdbcDataAdapter SQL 語句。 OdbcCommandBuilder接著會產生您未設定的任何其他 SQL 語句。

與其對應的 OdbcCommandBuilder 關聯 OdbcDataAdapter 性一律是一對一。 若要建立此對應,您可以設定 OdbcDataAdapter 物件的 屬性 OdbcCommandBuilder 。 這會導致 OdbcCommandBuilder 將本身註冊為接聽程式,這會產生影響 DataSet 的事件輸出 RowUpdating

若要產生 INSERT、UPDATE 或 DELETE 子句,會 OdbcCommandBuilderSelectCommand 使用 屬性來擷取一組必要的中繼資料。 如果您在擷取中繼資料之後變更 的值 SelectCommand ,例如在第一次更新之後,您應該呼叫 RefreshSchema 方法來更新中繼資料。

注意

如果指派給屬性的 SelectCommand SELECT 語句使用別名資料行名稱,則產生的 INSERT、UPDATE 和 DELETE 子句可能不正確或失敗。 如果基礎 ODBC 驅動程式無法使用) SQL_DESC_BASE_COLUMN_NAME值 SQLColAttribute ,為別名資料行名稱提供適當的基底資料行名稱 (,則別名名稱可用於產生的 INSERT、UPDATE 和 DELETE 子句中。 例如,Microsoft ODBC Driver for Oracle 會傳回別名名稱做為基底資料行名稱。 因此,產生的 INSERT、UPDATE 和 DELETE 子句會造成錯誤。

OdbcCommandBuilder也會使用 所參考的 ConnectionSelectCommandCommandTimeoutTransaction 屬性。 如果修改其中一或多個屬性,或屬性本身的值 SelectCommand 已變更,則使用者應該呼叫 RefreshSchema 。 否則 InsertCommandUpdateCommandDeleteCommand 屬性會保留其先前的值。

如果您呼叫 Dispose ,則會 OdbcCommandBuilderOdbcDataAdapter 解除關聯,而且不再使用產生的命令。

建構函式

OdbcCommandBuilder()

初始化 OdbcCommandBuilder 類別的新執行個體。

OdbcCommandBuilder(OdbcDataAdapter)

使用關聯的 OdbcCommandBuilder 物件來初始化 OdbcDataAdapter 類別的新執行個體。

屬性

CanRaiseEvents

取得值,指出元件是否能引發事件。

(繼承來源 Component)
CatalogLocation

取得或設定 DbCommandBuilder 類別執行個體的 CatalogLocation

(繼承來源 DbCommandBuilder)
CatalogSeparator

取得或設定作為 DbCommandBuilder 類別執行個體之目錄分隔符號使用的字串。

(繼承來源 DbCommandBuilder)
ConflictOption

指定 ConflictOption 所要使用的 DbCommandBuilder

(繼承來源 DbCommandBuilder)
Container

取得包含 IContainerComponent

(繼承來源 Component)
DataAdapter

設定或取得 OdbcDataAdapter 物件,這個 OdbcCommandBuilder 物件將會為它產生 SQL 陳述式。

DesignMode

取得值,指出 Component 目前是否處於設計模式。

(繼承來源 Component)
Events

取得附加在這個 Component 上的事件處理常式清單。

(繼承來源 Component)
QuotePrefix

取得或設定開始字元,以在指定名稱包含空白或保留語彙基元等字元的資料庫物件 (例如資料表或資料行) 時使用。

QuotePrefix

取得或設定開始字元 (一個或多個),當指定其名稱包含空白或保留語彙基元 (Token) 之類字元的資料庫物件時,就可以使用。

(繼承來源 DbCommandBuilder)
QuoteSuffix

取得或設定結束字元,以在指定名稱包含空白或保留語彙基元等字元的資料庫物件 (例如資料表或資料行) 時使用。

QuoteSuffix

取得或設定結束字元 (一個或多個),當指定其名稱包含空白或保留語彙基元之類字元的資料庫物件時,就可以使用。

(繼承來源 DbCommandBuilder)
SchemaSeparator

取得或設定用於結構描述識別項和任何其他識別項間之分隔符號的字元。

(繼承來源 DbCommandBuilder)
SetAllValues

指定更新陳述式中包含所有資料行值或只包含已變更的資料行值。

(繼承來源 DbCommandBuilder)
Site

取得或設定 ComponentISite

(繼承來源 Component)

方法

ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean)

允許 DbCommandBuilder 類別的提供者實作處理其他參數屬性。

(繼承來源 DbCommandBuilder)
CreateObjRef(Type)

建立包含所有相關資訊的物件,這些資訊是產生用來與遠端物件通訊的所需 Proxy。

(繼承來源 MarshalByRefObject)
DeriveParameters(OdbcCommand)

OdbcCommand 中指定的預存程序 (Stored Procedure) 擷取參數資訊,並填入 (Populate) 指定 Parameters 物件的 OdbcCommand 集合。

Dispose()

釋放 Component 所使用的所有資源。

(繼承來源 Component)
Dispose(Boolean)

釋放 DbCommandBuilder 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

(繼承來源 DbCommandBuilder)
Dispose(Boolean)

釋放 Component 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

(繼承來源 Component)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetDeleteCommand()

取得在資料來源上執行刪除時所需之自動產生的 OdbcCommand 物件。

GetDeleteCommand(Boolean)

取得在資料來源上執行刪除時所需之自動產生的 OdbcCommand 物件。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetInsertCommand()

取得在資料來源上執行插入時所需之自動產生的 OdbcCommand 物件。

GetInsertCommand(Boolean)

取得在資料來源上執行插入時所需之自動產生的 OdbcCommand 物件。

GetLifetimeService()
已淘汰.

擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。

(繼承來源 MarshalByRefObject)
GetParameterName(Int32)

以 的格式 @p# 傳回指定參數的名稱。 建置自訂命令產生器時使用。

(繼承來源 DbCommandBuilder)
GetParameterName(String)

已提供部分參數名稱時,傳回完整參數名稱。

(繼承來源 DbCommandBuilder)
GetParameterPlaceholder(Int32)

傳回相關 SQL 陳述式中參數的預留位置。

(繼承來源 DbCommandBuilder)
GetSchemaTable(DbCommand)

傳回 DbCommandBuilder 的結構描述資料表。

(繼承來源 DbCommandBuilder)
GetService(Type)

傳回表示 Component 或其 Container 所提供之服務的物件。

(繼承來源 Component)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
GetUpdateCommand()

取得在資料來源上執行更新時所需之自動產生的 OdbcCommand 物件。

GetUpdateCommand(Boolean)

取得在資料來源上執行更新時所需之自動產生的 OdbcCommand 物件。

InitializeCommand(DbCommand)

重設 CommandTimeout 上的 TransactionCommandTypeUpdateRowSourceDbCommand 屬性。

(繼承來源 DbCommandBuilder)
InitializeLifetimeService()
已淘汰.

取得存留期服務物件,以控制這個執行個體的存留期原則。

(繼承來源 MarshalByRefObject)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
MemberwiseClone(Boolean)

建立目前 MarshalByRefObject 物件的淺層複本。

(繼承來源 MarshalByRefObject)
QuoteIdentifier(String)

在正確資料庫目錄情況下提供不具引號的識別項時,會傳回該識別項具引號的正確格式。 這包括正確地逸出識別項中的任何內嵌引號。

QuoteIdentifier(String, OdbcConnection)

在正確資料庫目錄情況下提供不具引號的識別項時,會傳回該識別項具引號的正確格式。 這包括正確地逸出識別項中的任何內嵌引號。

RefreshSchema()

清除與這個 OdbcCommandBuilder 關聯的命令。

RefreshSchema()

清除與這個 DbCommandBuilder 關聯的命令。

(繼承來源 DbCommandBuilder)
RowUpdatingHandler(RowUpdatingEventArgs)

加入 RowUpdating 事件的事件處理常式。

(繼承來源 DbCommandBuilder)
SetRowUpdatingHandler(DbDataAdapter)

註冊 DbCommandBuilder,以處理 RowUpdatingDbDataAdapter 事件。

(繼承來源 DbCommandBuilder)
ToString()

傳回任何包含 Component 名稱的 String。 不應覆寫此方法。

(繼承來源 Component)
UnquoteIdentifier(String)

提供引號識別項 (Quoted Identifier) 時,會傳回該識別項不具引號的正確格式,包括正確將任何內嵌引號包含在此識別項中。

UnquoteIdentifier(String, OdbcConnection)

提供引號識別項 (Quoted Identifier) 時,會傳回該識別項不具引號的正確格式,包括正確將任何內嵌引號包含在此識別項中。

事件

Disposed

Dispose() 方法的呼叫處置元件時,就會發生。

(繼承來源 Component)

適用於

另請參閱