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
- 继承
- 继承
示例
以下示例使用数据源中的OleDbCommandOleDbDataAdapterOleDbConnection行和行。 此示例传递了已 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单表更新的属性OleDbDataAdapter,则可以创建一个OleDbCommandBuilder对象来自动生成 SQL 语句。 然后,未设置的任何其他 SQL 语句都由该 OleDbCommandBuilder语句生成。
每当设置DataAdapter属性时,该OleDbCommandBuilder事件将自身注册为侦听器RowUpdating。 一次只能将一个 OleDbDataAdapter 或 OleDbCommandBuilder 对象相互关联。
若要生成 INSERT、UPDATE 或 DELETE 语句,请使用OleDbCommandBuilderSelectCommand属性自动检索所需的一组元数据。 如果更改 SelectCommand 检索元数据后(例如第一次更新之后),则应调用 RefreshSchema 方法来更新元数据。
它还使用由
如果调用 Dispose,则会 OleDbCommandBuilder 取消 OleDbDataAdapter关联生成的命令,并且不再使用生成的命令。
构造函数
| 名称 | 说明 |
|---|---|
| OleDbCommandBuilder() |
初始化 OleDbCommandBuilder 类的新实例。 |
| OleDbCommandBuilder(OleDbDataAdapter) |
使用关联的OleDbDataAdapter对象初始化类的新实例OleDbCommandBuilder。 |
属性
| 名称 | 说明 |
|---|---|
| CanRaiseEvents |
获取一个值,该值指示组件是否可以引发事件。 (继承自 Component) |
| CatalogLocation |
获取或设置 CatalogLocation 类的 DbCommandBuilder 实例。 (继承自 DbCommandBuilder) |
| CatalogSeparator |
获取或设置用作类实例的目录分隔符的 DbCommandBuilder 字符串。 (继承自 DbCommandBuilder) |
| ConflictOption |
指定要由 DbCommandBuilder.ConflictOption. (继承自 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) |
方法
活动
| 名称 | 说明 |
|---|---|
| Disposed |
当组件通过对方法的调用 Dispose() 释放时发生。 (继承自 Component) |