Udostępnij za pośrednictwem


SqlCommandBuilder Klasa

Definicja

Automatycznie generuje polecenia z jedną tabelą, które są używane do uzgadniania zmian wprowadzonych w DataSet skojarzonej bazie danych SQL Server. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
SqlCommandBuilder

Przykłady

W poniższym przykładzie użyto SqlCommandelementu , wzdłuż SqlDataAdapter i SqlConnection, aby wybrać wiersze ze źródła danych. W przykładzie przekazano parametry połączenia, parametry zapytania, które są instrukcją Transact-SQL SELECT, oraz parametry, które są nazwą tabeli bazy danych. W tym przykładzie zostanie utworzony element 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;
            }
        }

Uwagi

Instrukcja SqlDataAdapter Transact-SQL nie generuje automatycznie instrukcji języka Transact-SQL wymaganych do uzgadniania zmian wprowadzonych DataSet w skojarzonym wystąpieniu SQL Server. Można jednak utworzyć SqlCommandBuilder obiekt, aby automatycznie wygenerować instrukcje języka Transact-SQL dla aktualizacji pojedynczej SqlDataAdaptertabeli, jeśli ustawisz SelectCommand właściwość . Następnie wszelkie dodatkowe instrukcje języka Transact-SQL, które nie zostały ustawione, są generowane przez SqlCommandBuilderelement .

Właściwość SqlCommandBuilder rejestruje się jako odbiornik dla RowUpdating zdarzeń za każdym razem, gdy właściwość zostanie ustawiona DataAdapter . Jednocześnie można skojarzyć tylko jeden SqlDataAdapter obiekt lub SqlCommandBuilder obiekt ze sobą.

Aby wygenerować instrukcje INSERT, UPDATE lub DELETE, SqlCommandBuilder właściwość używa SelectCommand właściwości do automatycznego pobierania wymaganego zestawu metadanych. W przypadku zmiany SelectCommand po pobraniu metadanych, takich jak po pierwszej aktualizacji, należy wywołać RefreshSchema metodę w celu zaktualizowania metadanych.

Element SelectCommand musi również zwrócić co najmniej jeden klucz podstawowy lub unikatową kolumnę. Jeśli żaden z nich nie istnieje, zostanie wygenerowany wyjątek InvalidOperation , a polecenia nie są generowane.

Obiekt SqlCommandBuilder używa Connectionrównież właściwości , CommandTimeouti Transaction , do których SelectCommandodwołuje się element . Użytkownik powinien wywołać metodę RefreshSchema , jeśli co najmniej jedna z tych właściwości zostanie zmodyfikowana lub jeśli SelectCommand sama zostanie zamieniona. InsertCommandW przeciwnym razie właściwości , UpdateCommandi DeleteCommand zachowują swoje poprzednie wartości.

Jeśli wywołasz metodę Dispose, SqlCommandBuilder element jest rozłączony z elementem SqlDataAdapter, a wygenerowane polecenia nie są już używane.

Konstruktory

SqlCommandBuilder()

Inicjuje nowe wystąpienie klasy SqlCommandBuilder.

SqlCommandBuilder(SqlDataAdapter)

Inicjuje SqlCommandBuilder nowe wystąpienie klasy ze skojarzonym SqlDataAdapter obiektem.

Właściwości

CatalogLocation

Ustawia lub pobiera CatalogLocation dla wystąpienia SqlCommandBuilder klasy .

CatalogSeparator

Ustawia lub pobiera ciąg używany jako separator wykazu dla wystąpienia SqlCommandBuilder klasy.

DataAdapter

Pobiera lub ustawia SqlDataAdapter obiekt, dla którego instrukcje Języka Transact-SQL są generowane automatycznie.

QuotePrefix

Pobiera lub ustawia początkowy znak lub znaki do użycia podczas określania obiektów bazy danych SQL Server, takich jak tabele lub kolumny, których nazwy zawierają znaki, takie jak spacje lub tokeny zarezerwowane.

QuoteSuffix

Pobiera lub ustawia znak końcowy lub znaki do użycia podczas określania obiektów bazy danych SQL Server, takich jak tabele lub kolumny, których nazwy zawierają znaki, takie jak spacje lub tokeny zarezerwowane.

SchemaSeparator

Pobiera lub ustawia znak do użycia dla separatora między identyfikatorem schematu a innymi identyfikatorami.

Metody

DeriveParameters(SqlCommand)

Pobiera informacje o parametrach z procedury składowanej określonej w obiekcie SqlCommand i wypełnia Parameters kolekcję określonego SqlCommand obiektu.

GetDeleteCommand()

Pobiera automatycznie wygenerowany SqlCommand obiekt wymagany do usunięcia bazy danych.

GetDeleteCommand(Boolean)

Pobiera automatycznie wygenerowany SqlCommand obiekt, który jest wymagany do wykonania usuwania w bazie danych.

GetInsertCommand()

Pobiera automatycznie wygenerowany SqlCommand obiekt wymagany do wykonywania wstawiania w bazie danych.

GetInsertCommand(Boolean)

Pobiera automatycznie wygenerowany SqlCommand obiekt, który jest wymagany do wykonywania wstawiania w bazie danych.

GetUpdateCommand()

Pobiera automatycznie wygenerowany SqlCommand obiekt wymagany do wykonywania aktualizacji bazy danych.

GetUpdateCommand(Boolean)

Pobiera automatycznie wygenerowany SqlCommand obiekt wymagany do wykonywania aktualizacji bazy danych.

QuoteIdentifier(String)

Automatycznie generuje polecenia z jedną tabelą, które są używane do uzgadniania zmian wprowadzonych w DataSet skojarzonej bazie danych SQL Server. Klasa ta nie może być dziedziczona.

UnquoteIdentifier(String)

Biorąc pod uwagę identyfikator cytowany, zwraca prawidłową niekwestionowaną formę tego identyfikatora. Obejmuje to poprawne odpakowywanie wszystkich osadzonych cudzysłowów w identyfikatorze.

Dotyczy