SqlCommandBuilder Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Автоматически создает однотабличные команды, используемые для выверки изменений, внесенных в DataSet, со связанной базой данных SQL Server. Этот класс не наследуется.
public ref class SqlCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder
type SqlCommandBuilder = class
inherit DbCommandBuilder
Public NotInheritable Class SqlCommandBuilder
Inherits DbCommandBuilder
- Наследование
-
SqlCommandBuilder
Примеры
В следующем примере для выбора строк из источника данных используются SqlCommand, а также SqlDataAdapterSqlConnection. В этом примере передается строка подключения, строка запроса, которая является инструкцией SELECT Transact-SQL, и строка, которая является именем таблицы базы данных. Затем в примере создается SqlCommandBuilderобъект .
using System;
using System.Data;
using Microsoft.Data.SqlClient;
namespace SqlCommandBuilderCS
{
class Program
{
static void Main()
{
string cnnst = "";
string queryst = "";
string tablen = "";
DataSet ds = SelectSqlRows(cnnst, queryst, tablen);
}
public static DataSet SelectSqlRows(string connectionString,
string queryString, string tableName)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(queryString, connection);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
connection.Open();
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, tableName);
//code to modify data in DataSet here
builder.GetUpdateCommand();
//Without the SqlCommandBuilder this line would fail
adapter.Update(dataSet, tableName);
return dataSet;
}
}
Комментарии
Не SqlDataAdapter создает автоматически инструкции Transact-SQL, необходимые для согласования изменений, внесенных в , со связанным экземпляром DataSet SQL Server. Однако можно создать объект для автоматического SqlCommandBuilder создания инструкций Transact-SQL для обновлений из одной таблицы, если задано SelectCommandSqlDataAdapterсвойство . Затем все дополнительные инструкции Transact-SQL, которые не заданы, создаются SqlCommandBuilder.
Объект SqlCommandBuilder регистрирует себя в качестве прослушивателя для RowUpdating событий всякий раз, когда вы задаете DataAdapter свойство . Одновременно можно связать только один SqlDataAdapter объект или SqlCommandBuilder .
Для создания инструкций SqlCommandBuilder INSERT, UPDATE или DELETE использует SelectCommand свойство для автоматического получения требуемого набора метаданных. При изменении SelectCommand после получения метаданных, например после первого обновления, необходимо вызвать RefreshSchema метод для обновления метаданных.
Свойство SelectCommand
должно также возвратить по крайней мере один столбец первичного ключа или столбец с атрибутом UNIQUE. Если они отсутствуют, создается исключение InvalidOperation , а команды не создаются.
также SqlCommandBuilder использует Connectionсвойства , и Transaction , CommandTimeoutна которые ссылается SelectCommandобъект . Пользователь должен вызывать , RefreshSchema если одно или несколько из этих свойств изменены или если SelectCommand заменяется сам объект . InsertCommandВ противном случае свойства , UpdateCommandи DeleteCommand сохраняют свои предыдущие значения.
При вызове DisposeSqlCommandBuilder объект не связан с SqlDataAdapter, а созданные команды больше не используются.
Конструкторы
SqlCommandBuilder() |
Инициализирует новый экземпляр класса SqlCommandBuilder. |
SqlCommandBuilder(SqlDataAdapter) |
Инициализирует новый экземпляр класса SqlCommandBuilder вместе со связанным объектом SqlDataAdapter. |
Свойства
CatalogLocation |
Возвращает или задает CatalogLocation для экземпляра класса SqlCommandBuilder. |
CatalogSeparator |
Возвращает или задает строку, которую можно использовать в качестве разделителя каталогов, для экземпляра класса SqlCommandBuilder. |
DataAdapter |
Возвращает или задает объект SqlDataAdapter, для которого автоматически создаются инструкции Transact-SQL. |
QuotePrefix |
Получает или задает начальный символ или символы, используемые для указания объектов базы данных SQL Server (например, таблиц или столбцов), имена которых содержат такие символы, как пробелы или зарезервированные токены. |
QuoteSuffix |
Получает или задает конечный символ или символы, используемые для указания объектов базы данных SQL Server (например, таблиц или столбцов), имена которых содержат такие символы, как пробелы или зарезервированные токены. |
SchemaSeparator |
Возвращает или задает символ, который используется в качестве разделителя между идентификатором схемы и остальными идентификаторами. |
Методы
DeriveParameters(SqlCommand) |
Извлекает сведения о параметрах из хранимой процедуры, указанной в объекте SqlCommand, и включает их в коллекцию параметров Parameters указанного объекта SqlCommand. |
GetDeleteCommand() |
Получает автоматически созданный объект SqlCommand, который требуется для выполнения операций удаления в базе данных. |
GetDeleteCommand(Boolean) |
Получает автоматически созданный объект SqlCommand, который требуется для выполнения операций удаления в базе данных. |
GetInsertCommand() |
Получает автоматически созданный объект SqlCommand, который требуется для выполнения операций вставки в базу данных. |
GetInsertCommand(Boolean) |
Получает автоматически созданный объект SqlCommand, который требуется для выполнения операций вставки в базе данных. |
GetUpdateCommand() |
Получает автоматически созданный объект SqlCommand, который требуется для выполнения обновлений базы данных. |
GetUpdateCommand(Boolean) |
Получает автоматически созданный объект SqlCommand, который требуется для выполнения обновлений базы данных. |
QuoteIdentifier(String) |
Автоматически создает однотабличные команды, используемые для выверки изменений, внесенных в DataSet, со связанной базой данных SQL Server. Этот класс не наследуется. |
UnquoteIdentifier(String) |
При заданном идентификаторе без кавычек в каталоге, набранном в правильном регистре, возвращает заключенный в кавычки идентификатор в корректной форме. При этом все кавычки, внедренные в идентификатор, корректно сохраняются. |