Ce sujet n'a pas encore été évalué - Évaluez ce sujet

SqlCommandBuilder, classe

Mise à jour : novembre 2007

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

Espace de noms :  System.Data.SqlClient
Assembly :  System.Data (dans System.Data.dll)

public sealed class SqlCommandBuilder : DbCommandBuilder
public final class SqlCommandBuilder extends DbCommandBuilder
public final class SqlCommandBuilder extends DbCommandBuilder

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

SqlCommandBuilder s'inscrit comme écouteur des événements RowUpdating si vous définissez la propriété DataAdapter. Vous ne pouvez associer qu'un objet SqlDataAdapter ou SqlCommandBuilder à l'autre simultanément.

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

SelectCommand doit également retourner au moins une colonne de clés primaires ou unique. Sinon, une exception InvalidOperation est générée et les commandes ne sont pas générées.

SqlCommandBuilder utilise également les propriétés Connection, CommandTimeout et Transaction référencées par SelectCommand. L'utilisateur doit appeler RefreshSchema en cas de modification d'une ou de plusieurs de ces propriétés, ou si SelectCommand lui-même est remplacé. Sinon, les propriétés InsertCommand, UpdateCommand et DeleteCommand conservent leurs valeurs précédentes.

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

L'exemple suivant utilise SqlCommand, ainsi que SqlDataAdapter et SqlConnection, pour sélectionner des lignes dans une source de données. 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 sont passées à l'exemple. L'exemple crée ensuite SqlCommandBuilder.

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;
    }
}


Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0, 1.0
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.