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 | |
---|---|---|
SqlCeCommandBuilder() | Initialise une nouvelle instance de la classe SqlCeCommandBuilder. | |
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 | |
---|---|---|
CanRaiseEvents | (hérité de Component) | |
CatalogLocation | Non pris en charge dans SQL Server Compact. (remplace DbCommandBuilder.CatalogLocation.) | |
CatalogSeparator | Non pris en charge dans SQL Server Compact. (remplace DbCommandBuilder.CatalogSeparator.) | |
ConflictOption | Spécifie quel ConflictOption doit être utilisé par le SqlCeCommandBuilder. (remplace DbCommandBuilder.ConflictOption.) | |
Container | (hérité de Component) | |
DataAdapter | Obtient ou définit un objet SqlCeDataAdapter pour lequel les instructions SQL sont automatiquement générées. | |
DesignMode | (hérité de Component) | |
Events | (hérité de Component) | |
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.) | |
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.) | |
SchemaSeparator | Non pris en charge dans SQL Server Compact. (remplace DbCommandBuilder.SchemaSeparator.) | |
SetAllValues | (hérité de DbCommandBuilder) | |
Site | (hérité de Component) |
Haut de la page
Méthodes
Haut de la page
Événements
Nom | Description | |
---|---|---|
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.