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
Método público SqlCeCommandBuilder() Inicializa una nueva instancia de la clase SqlCeCommandBuilder.
Método público SqlCeCommandBuilder(SqlCeDataAdapter) Inicializa una nueva instancia de la clase SqlCeCommandBuilder con los objetos SqlCeDataAdapter y SqlCeCommand asociados.

Arriba

Propiedades

  Nombre Descripción
Propiedad protegida CanRaiseEvents (se hereda de Component)
Propiedad pública CatalogLocation No es compatible con SQL Server Compact. (Invalida DbCommandBuilder.CatalogLocation.)
Propiedad pública CatalogSeparator No es compatible con SQL Server Compact. (Invalida DbCommandBuilder.CatalogSeparator.)
Propiedad pública ConflictOption Especifica qué ConflictOption va a utilizar SqlCeCommandBuilder. (Invalida DbCommandBuilder.ConflictOption.)
Propiedad pública Container (se hereda de Component)
Propiedad pública DataAdapter Obtiene o establece un objeto SqlCeDataAdapter para el que se generan instrucciones SQL de forma automática.
Propiedad protegida DesignMode (se hereda de Component)
Propiedad protegida Events (se hereda de Component)
Propiedad pública 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.)
Propiedad pública 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.)
Propiedad pública SchemaSeparator No es compatible con SQL Server Compact. (Invalida DbCommandBuilder.SchemaSeparator.)
Propiedad pública SetAllValues (se hereda de DbCommandBuilder)
Propiedad pública Site (se hereda de Component)

Arriba

Métodos

  Nombre Descripción
Método protegido ApplyParameterInfo (se hereda de DbCommandBuilder)
Método público CreateObjRef (se hereda de MarshalByRefObject)
Método público Dispose() (se hereda de Component)
Método protegido Dispose(Boolean) (se hereda de DbCommandBuilder)
Método público Equals (se hereda de Object)
Método protegido Finalize (se hereda de Component)
Método público 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.
Método público GetDeleteCommand(Boolean) (se hereda de DbCommandBuilder)
Método público GetHashCode (se hereda de Object)
Método público 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.
Método público GetInsertCommand(Boolean) (se hereda de DbCommandBuilder)
Método público GetLifetimeService (se hereda de MarshalByRefObject)
Método protegido GetParameterName(Int32) (se hereda de DbCommandBuilder)
Método protegido GetParameterName(String) (se hereda de DbCommandBuilder)
Método protegido GetParameterPlaceholder (se hereda de DbCommandBuilder)
Método protegido GetSchemaTable (se hereda de DbCommandBuilder)
Método protegido GetService (se hereda de Component)
Método público GetType (se hereda de Object)
Método público 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.
Método público GetUpdateCommand(Boolean) (se hereda de DbCommandBuilder)
Método protegido InitializeCommand (se hereda de DbCommandBuilder)
Método público InitializeLifetimeService (se hereda de MarshalByRefObject)
Método protegido MemberwiseClone() (se hereda de Object)
Método protegido MemberwiseClone(Boolean) (se hereda de MarshalByRefObject)
Método público QuoteIdentifier Devuelve el formato entrecomillado correcto del identificador especificado. (Invalida DbCommandBuilder.QuoteIdentifier(String).)
Método público RefreshSchema (se hereda de DbCommandBuilder)
Método protegido RowUpdatingHandler (se hereda de DbCommandBuilder)
Método protegido SetRowUpdatingHandler (se hereda de DbCommandBuilder)
Método público ToString (se hereda de Component)
Método público UnquoteIdentifier Devuelve el formato sin entrecomillar correcto del identificador especificado. (Invalida DbCommandBuilder.UnquoteIdentifier(String).)

Arriba

Eventos

  Nombre Descripción
Evento público 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.

Vea también

Referencia

Espacio de nombres System.Data.SqlServerCe