Clase SqlCeCommandBuilder
Proporciona un medio para generar de forma automática los comandos de tabla única que se utilizan para conciliar los cambios realizados en un DataSet con la base de datos asociada. No se puede heredar esta clase.
Jerarquía de herencia
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Data.Common.DbCommandBuilder
System.Data.SqlServerCe.SqlCeCommandBuilder
Espacio de nombres: System.Data.SqlServerCe
Ensamblado: System.Data.SqlServerCe (en System.Data.SqlServerCe.dll)
Sintaxis
'Declaración
Public NotInheritable Class SqlCeCommandBuilder _
Inherits DbCommandBuilder
'Uso
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
El tipo SqlCeCommandBuilder expone los siguientes miembros.
Constructores
Nombre | Descripción | |
---|---|---|
SqlCeCommandBuilder() | Inicializa una nueva instancia de la clase SqlCeCommandBuilder. | |
SqlCeCommandBuilder(SqlCeDataAdapter) | Inicializa una nueva instancia de la clase SqlCeCommandBuilder con los objetos SqlCeDataAdapter y SqlCeCommand asociados. |
Arriba
Propiedades
Nombre | Descripción | |
---|---|---|
CanRaiseEvents | (se hereda de Component) | |
CatalogLocation | No es compatible con SQL Server Compact. (Invalida DbCommandBuilder.CatalogLocation.) | |
CatalogSeparator | No es compatible con SQL Server Compact. (Invalida DbCommandBuilder.CatalogSeparator.) | |
ConflictOption | Especifica qué ConflictOption va a utilizar SqlCeCommandBuilder. (Invalida DbCommandBuilder.ConflictOption.) | |
Container | (se hereda de Component) | |
DataAdapter | Obtiene o establece un objeto SqlCeDataAdapter para el que se generan instrucciones SQL de forma automática. | |
DesignMode | (se hereda de Component) | |
Events | (se hereda de Component) | |
QuotePrefix | Obtiene o establece el carácter o los caracteres iniciales que se van a utilizar al especificar objetos de base de datos SQL Server (por ejemplo, tablas o columnas), cuyos nombres contengan caracteres como espacios o símbolos (token) reservados. (Invalida DbCommandBuilder.QuotePrefix.) | |
QuoteSuffix | Obtiene o establece el carácter o los caracteres finales que se van a utilizar al especificar objetos de base de datos SQL Server (por ejemplo, tablas o columnas), cuyos nombres contengan caracteres como espacios o símbolos (token) reservados. (Invalida DbCommandBuilder.QuoteSuffix.) | |
SchemaSeparator | No es compatible con SQL Server Compact. (Invalida DbCommandBuilder.SchemaSeparator.) | |
SetAllValues | (se hereda de DbCommandBuilder) | |
Site | (se hereda de Component) |
Arriba
Métodos
Nombre | Descripción | |
---|---|---|
ApplyParameterInfo | (se hereda de DbCommandBuilder) | |
CreateObjRef | (se hereda de MarshalByRefObject) | |
Dispose() | (se hereda de Component) | |
Dispose(Boolean) | (se hereda de DbCommandBuilder) | |
Equals | (se hereda de Object) | |
Finalize | (se hereda de Component) | |
GetDeleteCommand() | Obtiene el objeto SqlCeCommand generado de forma automática que es necesario para realizar eliminaciones en la base de datos cuando una aplicación llama a Update en SqlCeDataAdapter. | |
GetDeleteCommand(Boolean) | (se hereda de DbCommandBuilder) | |
GetHashCode | (se hereda de Object) | |
GetInsertCommand() | Obtiene el objeto SqlCeCommand generado de forma automática que es necesario para realizar inserciones en la base de datos cuando una aplicación llama a Update en SqlCeDataAdapter. | |
GetInsertCommand(Boolean) | (se hereda de DbCommandBuilder) | |
GetLifetimeService | (se hereda de MarshalByRefObject) | |
GetParameterName(Int32) | (se hereda de DbCommandBuilder) | |
GetParameterName(String) | (se hereda de DbCommandBuilder) | |
GetParameterPlaceholder | (se hereda de DbCommandBuilder) | |
GetSchemaTable | (se hereda de DbCommandBuilder) | |
GetService | (se hereda de Component) | |
GetType | (se hereda de Object) | |
GetUpdateCommand() | Obtiene el objeto SqlCeCommand generado de forma automática que es necesario para realizar actualizaciones en la base de datos cuando una aplicación llama a Update en SqlCeDataAdapter. | |
GetUpdateCommand(Boolean) | (se hereda de DbCommandBuilder) | |
InitializeCommand | (se hereda de DbCommandBuilder) | |
InitializeLifetimeService | (se hereda de MarshalByRefObject) | |
MemberwiseClone() | (se hereda de Object) | |
MemberwiseClone(Boolean) | (se hereda de MarshalByRefObject) | |
QuoteIdentifier | Devuelve el formato entrecomillado correcto del identificador especificado. (Invalida DbCommandBuilder.QuoteIdentifier(String).) | |
RefreshSchema | (se hereda de DbCommandBuilder) | |
RowUpdatingHandler | (se hereda de DbCommandBuilder) | |
SetRowUpdatingHandler | (se hereda de DbCommandBuilder) | |
ToString | (se hereda de Component) | |
UnquoteIdentifier | Devuelve el formato sin entrecomillar correcto del identificador especificado. (Invalida DbCommandBuilder.UnquoteIdentifier(String).) |
Arriba
Eventos
Nombre | Descripción | |
---|---|---|
Disposed | (se hereda de Component) |
Arriba
Comentarios
Puede crear un objeto SqlCeCommandBuilder que genere automáticamente instrucciones de Transact-SQL para las actualizaciones de una sola tabla si se establece el valor de la propiedad SelectCommand.
El objeto SqlCeCommandBuilder se registra a sí mismo como agente de escucha de eventos RowUpdating siempre que se establezca la propiedad DataAdapter. Solo se pueden asociar un objeto SqlCeDataAdapter y un objeto SqlCeCommandBuilder simultáneamente.
Para generar instrucciones INSERT, UPDATE o DELETE, SqlCeCommandBuilder utiliza la propiedad SelectCommand con el fin de recuperar automáticamente un conjunto de metadatos requerido. Si se cambia SelectCommand una vez que se han recuperado los metadatos (por ejemplo, después de la primera actualización), se debe llamar al método RefreshSchema() para actualizar los metadatos.
SelectCommand también debe devolver como mínimo una clave principal o una columna única. Si no hay ninguna, se genera una excepción InvalidOperation, y no se genera ningún comando.
SqlCeCommandBuilder utiliza también las propiedades Connection y Transaction a las que hace referencia SelectCommand. Se debe llamar a RefreshSchema() si se modifica cualquiera de estas propiedades, o si SelectCommand se reemplaza a sí mismo. En caso contrario, las propiedades InsertCommand, UpdateCommand y DeleteCommand conservan sus valores anteriores.
Si se llama a Dispose(), se elimina la asociación de SqlCeCommandBuilder con SqlCeDataAdapter y los comandos generados se dejan de utilizar.
Ejemplos
En el ejemplo siguiente se utiliza SqlCeCommand, junto con SqlCeDataAdapter y SqlCeConnection, para seleccionar filas de un origen de datos. En el ejemplo se pasa una cadena de conexión, una cadena de consulta y una cadena que es el nombre de la tabla de base de datos. A continuación, se crea un SqlCeCommandBuilder. El adaptador de datos utiliza a continuación ese generador de comandos para actualizar el objeto DataSet modificado en la base de datos local.
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());
}
Seguridad para subprocesos
Todos los miembros estáticos públicos (Shared in Microsoft Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.