SqlCommandBuilder Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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. |