Classe SqlCeCommandBuilder

Fournit un moyen de générer automatiquement des commandes de table simple utilisées pour harmoniser les modifications apportées à DataSet avec la base de données associée. Cette classe ne peut pas être héritée.

Hiérarchie d'héritage

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Data.Common.DbCommandBuilder
        System.Data.SqlServerCe.SqlCeCommandBuilder

Espace de noms :  System.Data.SqlServerCe
Assembly :  System.Data.SqlServerCe (en System.Data.SqlServerCe.dll)

Syntaxe

'Déclaration
Public NotInheritable Class SqlCeCommandBuilder _
    Inherits DbCommandBuilder
'Utilisation
Dim instance As SqlCeCommandBuilder
public sealed class SqlCeCommandBuilder : DbCommandBuilder
public ref class SqlCeCommandBuilder sealed : public DbCommandBuilder
[<SealedAttribute>]
type SqlCeCommandBuilder =  
    class
        inherit DbCommandBuilder
    end
public final class SqlCeCommandBuilder extends DbCommandBuilder

Le type SqlCeCommandBuilder expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique SqlCeCommandBuilder() Initialise une nouvelle instance de la classe SqlCeCommandBuilder.
Méthode publique SqlCeCommandBuilder(SqlCeDataAdapter) Initialise une nouvelle instance de la classe SqlCeCommandBuilder avec les objets SqlCeDataAdapter et SqlCeCommand associés.

Haut de la page

Propriétés

  Nom Description
Propriété protégée CanRaiseEvents (hérité de Component)
Propriété publique CatalogLocation Non pris en charge dans SQL Server Compact. (remplace DbCommandBuilder.CatalogLocation.)
Propriété publique CatalogSeparator Non pris en charge dans SQL Server Compact. (remplace DbCommandBuilder.CatalogSeparator.)
Propriété publique ConflictOption Spécifie quel ConflictOption doit être utilisé par le SqlCeCommandBuilder. (remplace DbCommandBuilder.ConflictOption.)
Propriété publique Container (hérité de Component)
Propriété publique DataAdapter Obtient ou définit un objet SqlCeDataAdapter pour lequel les instructions SQL sont automatiquement générées.
Propriété protégée DesignMode (hérité de Component)
Propriété protégée Events (hérité de Component)
Propriété publique 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 (par exemple, des tables ou colonnes) dont les noms contiennent des caractères tels que des espaces ou des jetons réservés. (remplace DbCommandBuilder.QuotePrefix.)
Propriété publique 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 (par exemple, des tables ou colonnes) dont les noms contiennent des caractères tels que des espaces ou des jetons réservés. (remplace DbCommandBuilder.QuoteSuffix.)
Propriété publique SchemaSeparator Non pris en charge dans SQL Server Compact. (remplace DbCommandBuilder.SchemaSeparator.)
Propriété publique SetAllValues (hérité de DbCommandBuilder)
Propriété publique Site (hérité de Component)

Haut de la page

Méthodes

  Nom Description
Méthode protégée ApplyParameterInfo (hérité de DbCommandBuilder)
Méthode publique CreateObjRef (hérité de MarshalByRefObject)
Méthode publique Dispose() (hérité de Component)
Méthode protégée Dispose(Boolean) (hérité de DbCommandBuilder)
Méthode publique Equals (hérité de Object)
Méthode protégée Finalize (hérité de Component)
Méthode publique GetDeleteCommand() Obtient l'objet SqlCeCommand généré automatiquement qui est requis pour effectuer des suppressions dans la base de données lorsqu'une application appelle Update sur SqlCeDataAdapter.
Méthode publique GetDeleteCommand(Boolean) (hérité de DbCommandBuilder)
Méthode publique GetHashCode (hérité de Object)
Méthode publique GetInsertCommand() Obtient l'objet SqlCeCommand généré automatiquement et qui est requis pour effectuer des insertions dans la base de données lorsqu'une application appelle Update sur SqlCeDataAdapter.
Méthode publique GetInsertCommand(Boolean) (hérité de DbCommandBuilder)
Méthode publique GetLifetimeService (hérité de MarshalByRefObject)
Méthode protégée GetParameterName(Int32) (hérité de DbCommandBuilder)
Méthode protégée GetParameterName(String) (hérité de DbCommandBuilder)
Méthode protégée GetParameterPlaceholder (hérité de DbCommandBuilder)
Méthode protégée GetSchemaTable (hérité de DbCommandBuilder)
Méthode protégée GetService (hérité de Component)
Méthode publique GetType (hérité de Object)
Méthode publique GetUpdateCommand() Obtient l'objet SqlCeCommand généré automatiquement et requis pour effectuer des mises à jour dans la base de données lorsqu'une application appelle Update sur SqlCeDataAdapter.
Méthode publique GetUpdateCommand(Boolean) (hérité de DbCommandBuilder)
Méthode protégée InitializeCommand (hérité de DbCommandBuilder)
Méthode publique InitializeLifetimeService (hérité de MarshalByRefObject)
Méthode protégée MemberwiseClone() (hérité de Object)
Méthode protégée MemberwiseClone(Boolean) (hérité de MarshalByRefObject)
Méthode publique QuoteIdentifier Retourne la forme avec guillemets correcte de l'identificateur spécifié. (remplace DbCommandBuilder.QuoteIdentifier(String).)
Méthode publique RefreshSchema (hérité de DbCommandBuilder)
Méthode protégée RowUpdatingHandler (hérité de DbCommandBuilder)
Méthode protégée SetRowUpdatingHandler (hérité de DbCommandBuilder)
Méthode publique ToString (hérité de Component)
Méthode publique UnquoteIdentifier Retourne la forme sans guillemets correcte de l'identificateur spécifié. (remplace DbCommandBuilder.UnquoteIdentifier(String).)

Haut de la page

Événements

  Nom Description
Événement public Disposed (hérité de Component)

Haut de la page

Notes

Vous pouvez créer un objet SqlCeCommandBuilder pour générer automatiquement des instructions Transact-SQL pour des mises à jour de table simple si vous définissez la propriété SelectCommand.

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

Pour générer des instructions INSERT, UPDATE ou DELETE, SqlCeCommandBuilder 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.

SqlCeCommandBuilder utilise aussi les propriétés Connection et Transaction référencées par SelectCommand. Vous devez appeler RefreshSchema() en cas de modification d'une de ces propriétés, ou si le SelectCommand proprement dit est remplacé. Sinon, les propriétés InsertCommand, UpdateCommand et DeleteCommand conservent leurs valeurs précédentes.

Si vous appelez Dispose(), SqlCeCommandBuilder est dissocié de SqlCeDataAdapter, et les commandes générées ne sont plus utilisées.

Exemples

L'exemple suivant utilise SqlCeCommand, ainsi que SqlCeDataAdapter et SqlCeConnection, pour sélectionner des lignes dans une source de données. Une chaîne de connexion, une chaîne de requête 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 SqlCeCommandBuilder. Ce générateur de commande est ensuite utilisé par l'adaptateur de données pour mettre à jour le groupe de données modifié dans la base de données locale.

Try
    Dim conn As New SqlCeConnection("Data Source = MyDatabase.sdf")
    conn.Open()

    Dim cmd As SqlCeCommand = conn.CreateCommand()
    cmd.CommandText = "SELECT * FROM employees"

    Dim adp As New SqlCeDataAdapter(cmd)

    Dim cb As New SqlCeCommandBuilder()
    cb.DataAdapter = adp

    MessageBox.Show(cb.GetUpdateCommand().CommandText)
    MessageBox.Show(cb.GetInsertCommand().CommandText)
    MessageBox.Show(cb.GetDeleteCommand().CommandText)

    Dim ds As New DataSet("test")
    adp.Fill(ds)

    ' Modify the contents of the DataSet
    '
    ds.Tables(0).Rows(0)("First Name") = "Joe"

    adp.Update(ds)

Catch e1 As Exception
    Console.WriteLine(e1.ToString())
End Try
try
{
    SqlCeConnection conn = new SqlCeConnection("Data Source = MyDatabase.sdf");
    conn.Open();

    SqlCeCommand cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT * FROM employees";

    SqlCeDataAdapter adp = new SqlCeDataAdapter(cmd);

    SqlCeCommandBuilder cb = new SqlCeCommandBuilder();
    cb.DataAdapter = adp;

    MessageBox.Show(cb.GetUpdateCommand().CommandText);
    MessageBox.Show(cb.GetInsertCommand().CommandText);
    MessageBox.Show(cb.GetDeleteCommand().CommandText);

    DataSet ds = new DataSet("test");
    adp.Fill(ds);

    // Modify the contents of the DataSet
    //
    ds.Tables[0].Rows[0]["First Name"] = "Joe";

    adp.Update(ds);

}
catch (Exception e1)
{
    Console.WriteLine(e1.ToString());
}

Sécurité des threads

Tout membre statique public (Shared en Microsoft Visual Basic) de ce type est thread-safe. Tous les membres de l'instance ne sont pas garantis comme sûrs.

Voir aussi

Référence

Espace de noms System.Data.SqlServerCe