OdbcCommandBuilder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
自動產生單一資料表命令,可用來調解對 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
- 繼承
- 繼承
範例
下列範例會搭配 和 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數據表更新的 OdbcDataAdapterSQL 語句。 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也會使用 所參考的ConnectionSelectCommand、 CommandTimeout和 Transaction 屬性。 如果修改其中一或多個屬性,或屬性本身的值SelectCommand已變更,則使用者應該呼叫 RefreshSchema 。 否則 InsertCommand, UpdateCommand和 DeleteCommand 屬性會保留其先前的值。
如果您呼叫 Dispose,則會 OdbcCommandBuilder 與 OdbcDataAdapter解除關聯,而且不再使用產生的命令。
建構函式
OdbcCommandBuilder() |
初始化 OdbcCommandBuilder 類別的新執行個體。 |
OdbcCommandBuilder(OdbcDataAdapter) |
使用關聯的 OdbcCommandBuilder 物件來初始化 OdbcDataAdapter 類別的新執行個體。 |
屬性
CanRaiseEvents |
取得值,指出元件是否能引發事件。 (繼承來源 Component) |
CatalogLocation |
取得或設定 DbCommandBuilder 類別執行個體的 CatalogLocation。 (繼承來源 DbCommandBuilder) |
CatalogSeparator |
取得或設定作為 DbCommandBuilder 類別執行個體之目錄分隔符號使用的字串。 (繼承來源 DbCommandBuilder) |
ConflictOption |
指定 ConflictOption 所要使用的 DbCommandBuilder。 (繼承來源 DbCommandBuilder) |
Container |
取得包含 IContainer 的 Component。 (繼承來源 Component) |
DataAdapter |
設定或取得 OdbcDataAdapter 物件,這個 OdbcCommandBuilder 物件將會為它產生 SQL 陳述式。 |
DesignMode |
取得值,指出 Component 目前是否處於設計模式。 (繼承來源 Component) |
Events |
取得附加在這個 Component 上的事件處理常式清單。 (繼承來源 Component) |
QuotePrefix |
取得或設定開始字元,以在指定名稱包含空白或保留語彙基元等字元的資料庫物件 (例如資料表或資料行) 時使用。 |
QuotePrefix |
取得或設定開始字元 (一個或多個),當指定其名稱包含空白或保留語彙基元 (Token) 之類字元的資料庫物件時,就可以使用。 (繼承來源 DbCommandBuilder) |
QuoteSuffix |
取得或設定結束字元,以在指定名稱包含空白或保留語彙基元等字元的資料庫物件 (例如資料表或資料行) 時使用。 |
QuoteSuffix |
取得或設定結束字元 (一個或多個),當指定其名稱包含空白或保留語彙基元之類字元的資料庫物件時,就可以使用。 (繼承來源 DbCommandBuilder) |
SchemaSeparator |
取得或設定用於結構描述識別項和任何其他識別項間之分隔符號的字元。 (繼承來源 DbCommandBuilder) |
SetAllValues |
指定更新陳述式中包含所有資料行值或只包含已變更的資料行值。 (繼承來源 DbCommandBuilder) |
Site | (繼承來源 Component) |
方法
事件
Disposed |
當 Dispose() 方法的呼叫處置元件時,就會發生。 (繼承來源 Component) |