Share via


SqlCommandBuilder Classe

Définition

Génère automatiquement des commandes de tableau unique utilisées pour rapprocher les modifications apportées à un DataSet avec la base de données SQL Server associée. Cette classe ne peut pas être héritée.

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
Héritage
SqlCommandBuilder

Exemples

L’exemple suivant utilise , SqlCommandle long SqlDataAdapter et SqlConnection, pour sélectionner des lignes à partir d’une source de données. L’exemple est passé une chaîne de connexion, une chaîne de requête qui est une instruction Transact-SQL SELECT et une chaîne qui est le nom de la table de base de données. L’exemple crée ensuite un 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;
            }
        }

Remarques

ne SqlDataAdapter génère pas automatiquement les instructions Transact-SQL requises pour rapprocher les modifications apportées à un DataSet avec le instance de SQL Server associé. Toutefois, vous pouvez créer un objet pour générer automatiquement des SqlCommandBuilder instructions Transact-SQL pour les mises à jour d’une table unique si vous définissez la SelectCommand propriété de .SqlDataAdapter Ensuite, toutes les instructions Transact-SQL supplémentaires que vous ne définissez pas sont générées par le SqlCommandBuilder.

le SqlCommandBuilder s’inscrit lui-même en tant qu’écouteur pour RowUpdating les événements chaque fois que vous définissez la DataAdapter propriété . Vous ne pouvez associer qu’un SqlDataAdapter ou SqlCommandBuilder un objet à l’autre à la fois.

Pour générer des instructions INSERT, UPDATE ou DELETE, utilise SqlCommandBuilder la SelectCommand propriété pour récupérer automatiquement un ensemble de métadonnées requis. Si vous modifiez après SelectCommand que les métadonnées ont été récupérées, par exemple après la première mise à jour, vous devez appeler la RefreshSchema méthode pour mettre à jour les métadonnées.

SelectCommand doit aussi retourner au moins une clé primaire ou une colonne unique. Si aucun n’est présent, une exception InvalidOperation est générée et les commandes ne sont pas générées.

utilise SqlCommandBuilder également les Connectionpropriétés , CommandTimeoutet Transaction référencées par le SelectCommand. L’utilisateur doit appeler RefreshSchema si une ou plusieurs de ces propriétés sont modifiées, ou si le SelectCommand lui-même est remplacé. Sinon, les InsertCommandpropriétés , UpdateCommandet DeleteCommand conservent leurs valeurs précédentes.

Si vous appelez Dispose, le SqlCommandBuilder est dissocié de et SqlDataAdapterles commandes générées ne sont plus utilisées.

Constructeurs

SqlCommandBuilder()

Initialise une nouvelle instance de la classe SqlCommandBuilder.

SqlCommandBuilder(SqlDataAdapter)

Initialise une nouvelle instance de la classe SqlCommandBuilder avec l'objet SqlDataAdapter associé.

Propriétés

CatalogLocation

Définit ou obtient le CatalogLocation d'une instance de la classe SqlCommandBuilder.

CatalogSeparator

Définit ou obtient une chaîne utilisée comme séparateur de catalogue pour une instance de la classe SqlCommandBuilder.

DataAdapter

Obtient ou définit un objet SqlDataAdapter pour lequel les instructions Transact-SQL sont automatiquement générées.

QuotePrefix

Obtient ou définit le ou les caractères de début à utiliser lors de la spécification d'objets de base de données SQL Server, tels que des tables ou colonnes, dont les noms contiennent des caractères tels que des espaces ou des jetons réservés.

QuoteSuffix

Obtient ou définit le ou les caractères de fin à utiliser lors de la spécification d'objets de base de données SQL Server, tels que des tables ou colonnes, dont les noms contiennent des caractères tels que des espaces ou des jetons réservés.

SchemaSeparator

Obtient ou définit le caractère à utiliser pour le séparateur entre l'identificateur de schéma et tout autre identificateur.

Méthodes

DeriveParameters(SqlCommand)

Récupère les informations sur les paramètres à partir de la procédure stockée spécifiée dans SqlCommand et remplit la collection Parameters de l'objet SqlCommand spécifié.

GetDeleteCommand()

Obtient l'objet SqlCommand généré automatiquement, qui est requis pour effectuer des suppressions au niveau de la base de données.

GetDeleteCommand(Boolean)

Obtient l'objet SqlCommand généré automatiquement, qui est requis pour effectuer des suppressions au niveau de la base de données.

GetInsertCommand()

Obtient l'objet SqlCommand généré automatiquement, qui est requis pour effectuer des suppressions au niveau de la base de données.

GetInsertCommand(Boolean)

Obtient l'objet SqlCommand généré automatiquement, qui est requis pour effectuer des insertions au niveau de la base de données.

GetUpdateCommand()

Obtient l'objet SqlCommand généré automatiquement, qui est requis pour effectuer des mises à jour au niveau de la base de données.

GetUpdateCommand(Boolean)

Obtient l'objet SqlCommand généré automatiquement, qui est requis pour effectuer des mises à jour au niveau de la base de données.

QuoteIdentifier(String)

Génère automatiquement des commandes de tableau unique utilisées pour rapprocher les modifications apportées à un DataSet avec la base de données SQL Server associée. Cette classe ne peut pas être héritée.

UnquoteIdentifier(String)

Muni d'un identificateur entre guillemets, retourne la forme de cet identificateur sans guillemets. Cela inclut de placer correctement tous les guillemets incorporés dans l'identificateur hors d'une séquence d'échappement.

S’applique à