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
- 继承
- 继承
示例
以下示例使用 OdbcCommand以及 OdbcDataAdapter 和 OdbcConnection从数据源中选择行。 该示例传递了初始化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 的 OdbcDataAdapter属性创建一个OdbcCommandBuilder对象,该对象为单表更新生成 SQL 语句。 然后,生成 OdbcCommandBuilder 未设置的任何其他 SQL 语句。
与其对应OdbcCommandBuilder项之间的关系OdbcDataAdapter始终是一对一的。 若要创建此对应关系,请设置 OdbcDataAdapter 对象的 属性 OdbcCommandBuilder 。 这会导致 OdbcCommandBuilder 将自身注册为侦听器,从而生成影响 的事件的RowUpdatingDataSet输出。
若要生成 INSERT、UPDATE 或 DELETE 语句, OdbcCommandBuilder 使用 SelectCommand 属性检索所需的元数据集。 如果在检索元数据后(例如在第一次更新之后)更改 的值 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使用 Connection引用的 SelectCommand、 CommandTimeout和 Transaction 属性。 如果修改了其中一个或多个属性,或者更改了属性本身的值SelectCommand,则用户应调用 RefreshSchema 。 否则, InsertCommandUpdateCommand和 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 对象将为其生成 SQL 语句的 OdbcCommandBuilder 对象。 |
DesignMode |
获取一个值,用以指示 Component 当前是否处于设计模式。 (继承自 Component) |
Events |
获取附加到此 Component 的事件处理程序的列表。 (继承自 Component) |
QuotePrefix |
获取或设置使用其名称包含空格或保留标记等字符的数据库对象(例如,表或列)时使用的开始字符。 |
QuotePrefix |
获取或设置指定其名称包含空格或保留标记等字符的数据库对象(例如,表或列)时使用的开始字符。 (继承自 DbCommandBuilder) |
QuoteSuffix |
获取或设置使用其名称包含空格或保留标记等字符的数据库对象(例如,表或列)时使用的结束字符。 |
QuoteSuffix |
获取或设置一个或多个结束字符,供指定其名称中包含空格或保留标记等字符的数据库对象(例如,表或列)时使用。 (继承自 DbCommandBuilder) |
SchemaSeparator |
获取或设置要用作架构标识符和任何其他标识符之间的分隔符的字符。 (继承自 DbCommandBuilder) |
SetAllValues |
指定 update 语句中是包含所有列值还是仅包含更改的列值。 (继承自 DbCommandBuilder) |
Site | (继承自 Component) |
方法
事件
Disposed |
在通过调用 Dispose() 方法释放组件时发生。 (继承自 Component) |