Класс SqlCeCommandBuilder
Предоставляет собой средство автоматического формирования команд, распространяющихся на одну таблицу, которые используются для согласования со связанной базой данных изменений, внесенных в DataSet. Этот класс не может быть унаследован.
Иерархия наследования
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Data.Common.DbCommandBuilder
System.Data.SqlServerCe.SqlCeCommandBuilder
Пространство имен: System.Data.SqlServerCe
Сборка: System.Data.SqlServerCe (в System.Data.SqlServerCe.dll)
Синтаксис
'Декларация
Public NotInheritable Class SqlCeCommandBuilder _
Inherits DbCommandBuilder
'Применение
Dim instance As SqlCeCommandBuilder
public sealed class SqlCeCommandBuilder : DbCommandBuilder
public ref class SqlCeCommandBuilder sealed : public DbCommandBuilder
[<SealedAttribute>]
type SqlCeCommandBuilder =
class
inherit DbCommandBuilder
end
public final class SqlCeCommandBuilder extends DbCommandBuilder
Тип SqlCeCommandBuilder обеспечивает доступ к следующим элементам.
Конструкторы
Имя | Описание | |
---|---|---|
SqlCeCommandBuilder() | Инициализация нового экземпляра класса SqlCeCommandBuilder. | |
SqlCeCommandBuilder(SqlCeDataAdapter) | Инициализирует новый экземпляр класса SqlCeCommandBuilder со связанными объектами SqlCeDataAdapter и SqlCeCommand. |
В начало
Свойства
Имя | Описание | |
---|---|---|
CanRaiseEvents | (унаследовано из Component) | |
CatalogLocation | Не поддерживается в SQL Server Compact. (Переопределяет DbCommandBuilder.CatalogLocation.) | |
CatalogSeparator | Не поддерживается в SQL Server Compact. (Переопределяет DbCommandBuilder.CatalogSeparator.) | |
ConflictOption | Указывает режим ConflictOption, используемый для объекта SqlCeCommandBuilder. (Переопределяет DbCommandBuilder.ConflictOption.) | |
Container | (унаследовано из Component) | |
DataAdapter | Возвращает или задает свойство объекта SqlCeDataAdapter, для которого автоматически сформированы инструкции SQL. | |
DesignMode | (унаследовано из Component) | |
Events | (унаследовано из Component) | |
QuotePrefix | Возвращает или задает начальный символ или символы, используемые при указании объектов базы данных SQL Server (например таблиц или столбцов), имена которых содержат символы пробелов или зарезервированные ключевые слова. (Переопределяет DbCommandBuilder.QuotePrefix.) | |
QuoteSuffix | Возвращает или задает завершающий символ или символы, используемые при указании объектов базы данных SQL Server (например таблиц или столбцов), имена которых содержат символы пробелов или зарезервированные ключевые слова. (Переопределяет DbCommandBuilder.QuoteSuffix.) | |
SchemaSeparator | Не поддерживается в SQL Server Compact. (Переопределяет DbCommandBuilder.SchemaSeparator.) | |
SetAllValues | (унаследовано из DbCommandBuilder) | |
Site | (унаследовано из Component) |
В начало
Методы
Имя | Описание | |
---|---|---|
ApplyParameterInfo | (унаследовано из DbCommandBuilder) | |
CreateObjRef | (унаследовано из MarshalByRefObject) | |
Dispose() | (унаследовано из Component) | |
Dispose(Boolean) | (унаследовано из DbCommandBuilder) | |
Equals | (унаследовано из Object) | |
Finalize | (унаследовано из Component) | |
GetDeleteCommand() | Возвращает автоматически сформированный объект SqlCeCommand, необходимый для выполнения операций удаления в базе данных при вызове приложением метода Update объекта SqlCeDataAdapter. | |
GetDeleteCommand(Boolean) | (унаследовано из DbCommandBuilder) | |
GetHashCode | (унаследовано из Object) | |
GetInsertCommand() | Возвращает автоматически созданный объект SqlCeCommand, необходимый для выполнения операций вставки в базе данных при вызове приложением метода Update объекта SqlCeDataAdapter. | |
GetInsertCommand(Boolean) | (унаследовано из DbCommandBuilder) | |
GetLifetimeService | (унаследовано из MarshalByRefObject) | |
GetParameterName(Int32) | (унаследовано из DbCommandBuilder) | |
GetParameterName(String) | (унаследовано из DbCommandBuilder) | |
GetParameterPlaceholder | (унаследовано из DbCommandBuilder) | |
GetSchemaTable | (унаследовано из DbCommandBuilder) | |
GetService | (унаследовано из Component) | |
GetType | (унаследовано из Object) | |
GetUpdateCommand() | Возвращает автоматически созданный объект SqlCeCommand, необходимый для выполнения операций вставки в базе данных при вызове приложением метода Update объекта SqlCeDataAdapter. | |
GetUpdateCommand(Boolean) | (унаследовано из DbCommandBuilder) | |
InitializeCommand | (унаследовано из DbCommandBuilder) | |
InitializeLifetimeService | (унаследовано из MarshalByRefObject) | |
MemberwiseClone() | (унаследовано из Object) | |
MemberwiseClone(Boolean) | (унаследовано из MarshalByRefObject) | |
QuoteIdentifier | Возвращает правильную форму указанного идентификатора в кавычках. (Переопределяет DbCommandBuilder.QuoteIdentifier(String).) | |
RefreshSchema | (унаследовано из DbCommandBuilder) | |
RowUpdatingHandler | (унаследовано из DbCommandBuilder) | |
SetRowUpdatingHandler | (унаследовано из DbCommandBuilder) | |
ToString | (унаследовано из Component) | |
UnquoteIdentifier | Возвращает правильную форму указанного идентификатора без кавычек. (Переопределяет DbCommandBuilder.UnquoteIdentifier(String).) |
В начало
События
Имя | Описание | |
---|---|---|
Disposed | (унаследовано из Component) |
В начало
Замечания
Создание SqlCeCommandBuilder позволит автоматически формировать инструкции Transact-SQL для обновлений, распространяющихся на одну таблицу, если будет задано свойство SelectCommand.
Объект SqlCeCommandBuilder сам регистрирует себя в качестве прослушивателя для событий RowUpdating каждый раз после установки свойства DataAdapter. Одновременно друг с другом могут быть связаны только по одному объекту SqlCeDataAdapter и SqlCeCommandBuilder.
При формировании инструкций INSERT, UPDATE и DELETE через SqlCeCommandBuilder для автоматической выборки требуемого набора метаданных применяется свойство SelectCommand. Если значение свойства SelectCommand после выборки метаданных изменено (например, после первого обновления), то необходимо обновить метаданные вызовом метода RefreshSchema().
Свойство SelectCommand должно также возвратить, по крайней мере, один столбец первичного ключа или столбец с атрибутом UNIQUE. Если оба объекта отсутствуют, то создается исключение InvalidOperation и команды не формируются.
Объект SqlCeCommandBuilder содержит также свойства Connection и Transaction, на которые ссылается SelectCommand. Если происходит изменение любого из этих свойств или замена самого SelectCommand, то необходимо вызвать функцию RefreshSchema(). В противном случае свойства InsertCommand, UpdateCommand и DeleteCommand сохранят свои предыдущие значения.
При вызове метода Dispose() происходит разрыв связи между SqlCeCommandBuilder и SqlCeDataAdapter, а использование сформированных команд прекращается.
Примеры
В следующем примере показано использование SqlCeCommand, SqlCeDataAdapter и SqlCeConnection для выборки строк из источника данных. В этом примере передается строка подключения, строка запроса и строка, которая представляет собой имя таблицы базы данных. Затем пример создает объект SqlCeCommandBuilder, который используется адаптером обработки данных для обновления измененного набора данных в локальной базе данных.
Try
Dim conn As New SqlCeConnection("Data Source = MyDatabase.sdf")
conn.Open()
Dim cmd As SqlCeCommand = conn.CreateCommand()
cmd.CommandText = "SELECT * FROM employees"
Dim adp As New SqlCeDataAdapter(cmd)
Dim cb As New SqlCeCommandBuilder()
cb.DataAdapter = adp
MessageBox.Show(cb.GetUpdateCommand().CommandText)
MessageBox.Show(cb.GetInsertCommand().CommandText)
MessageBox.Show(cb.GetDeleteCommand().CommandText)
Dim ds As New DataSet("test")
adp.Fill(ds)
' Modify the contents of the DataSet
'
ds.Tables(0).Rows(0)("First Name") = "Joe"
adp.Update(ds)
Catch e1 As Exception
Console.WriteLine(e1.ToString())
End Try
try
{
SqlCeConnection conn = new SqlCeConnection("Data Source = MyDatabase.sdf");
conn.Open();
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM employees";
SqlCeDataAdapter adp = new SqlCeDataAdapter(cmd);
SqlCeCommandBuilder cb = new SqlCeCommandBuilder();
cb.DataAdapter = adp;
MessageBox.Show(cb.GetUpdateCommand().CommandText);
MessageBox.Show(cb.GetInsertCommand().CommandText);
MessageBox.Show(cb.GetDeleteCommand().CommandText);
DataSet ds = new DataSet("test");
adp.Fill(ds);
// Modify the contents of the DataSet
//
ds.Tables[0].Rows[0]["First Name"] = "Joe";
adp.Update(ds);
}
catch (Exception e1)
{
Console.WriteLine(e1.ToString());
}
Безопасность многопоточности
Все общие статические члены (Shared в Microsoft Visual Basic) этого типа можно использовать в потокобезопасных операциях. Потокобезопасная работа с членами экземпляров типа не гарантируется.