Compartir a través de


SqlCommandBuilder Clase

Definición

Genera automáticamente comandos de tabla única que se usan para conciliar los cambios realizados en un objeto DataSet con la base de datos SQL Server asociada. Esta clase no puede heredarse.

public ref class SqlCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder
type SqlCommandBuilder = class
    inherit DbCommandBuilder
Public NotInheritable Class SqlCommandBuilder
Inherits DbCommandBuilder
Herencia
SqlCommandBuilder

Ejemplos

En el SqlCommandejemplo siguiente se usa , junto SqlDataAdapter y SqlConnection, para seleccionar filas de un origen de datos. En el ejemplo se pasa una cadena de conexión, una cadena de consulta que es una instrucción SELECT de Transact-SQL y una cadena que es el nombre de la tabla de base de datos. A continuación, en el ejemplo se crea un SqlCommandBuilderobjeto .

using System;
using System.Data;
using Microsoft.Data.SqlClient;

namespace SqlCommandBuilderCS
{
    class Program
    {
        static void Main()
        {
            string cnnst = "";
            string queryst = "";
            string tablen = "";
            DataSet ds = SelectSqlRows(cnnst, queryst, tablen);

        }

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

Comentarios

No SqlDataAdapter genera automáticamente las instrucciones Transact-SQL necesarias para conciliar los cambios realizados en un DataSet objeto con la instancia asociada de SQL Server. Sin embargo, puede crear un SqlCommandBuilder objeto para generar automáticamente instrucciones Transact-SQL para actualizaciones de tabla única si establece la SelectCommand propiedad de SqlDataAdapter. A continuación, las instrucciones transact-SQL adicionales que no establezca se generan mediante .SqlCommandBuilder

Se SqlCommandBuilder registra como agente de escucha para RowUpdating eventos cada vez que establece la DataAdapter propiedad . Solo puede asociar uno SqlDataAdapter o SqlCommandBuilder un objeto entre sí a la vez.

Para generar instrucciones INSERT, UPDATE o DELETE, usa SqlCommandBuilder la SelectCommand propiedad para recuperar automáticamente un conjunto necesario de metadatos. Si cambia una SelectCommand vez recuperados los metadatos, como después de la primera actualización, debe llamar al RefreshSchema método para actualizar los metadatos.

SelectCommand también debe devolver como mínimo una clave principal o una columna única. Si no hay ninguno, se genera una excepción InvalidOperation y no se generan los comandos.

También SqlCommandBuilder usa las Connectionpropiedades , CommandTimeouty Transaction a las que hace referencia .SelectCommand El usuario debe llamar a RefreshSchema si se modifican una o varias de estas propiedades, o si se reemplaza el SelectCommand propio . De lo contrario, las InsertCommandpropiedades , UpdateCommandy DeleteCommand conservan sus valores anteriores.

Si llama a Dispose, se SqlCommandBuilder desasocia de SqlDataAdaptery los comandos generados ya no se usan.

Constructores

SqlCommandBuilder()

Inicializa una nueva instancia de la clase SqlCommandBuilder.

SqlCommandBuilder(SqlDataAdapter)

Inicializa una nueva instancia de la clase SqlCommandBuilder con el objeto SqlDataAdapter asociado.

Propiedades

CatalogLocation

Establece u obtiene el objeto CatalogLocation para una instancia de la clase SqlCommandBuilder.

CatalogSeparator

Establece u obtiene una cadena que se utiliza como separador de catálogo para una instancia de la clase SqlCommandBuilder.

DataAdapter

Obtiene o establece un objeto SqlDataAdapter para el que se generan automáticamente instrucciones de Transact-SQL.

QuotePrefix

Obtiene o establece el carácter o caracteres iniciales que se van a utilizar para especificar objetos de base de datos de SQL Server, por ejemplo, tablas o columnas, cuyos nombres contengan caracteres como espacios o símbolos (tokens) reservados.

QuoteSuffix

Obtiene o establece el carácter o caracteres finales que se utilizan para especificar objetos de base de datos de SQL Server, por ejemplo, tablas o columnas, cuyos nombres contienen caracteres como espacios o símbolos (tokens) reservados.

SchemaSeparator

Obtiene o establece el carácter que se va a utilizar para el separador entre el identificador de esquema y cualquier otro identificador.

Métodos

DeriveParameters(SqlCommand)

Recupera información de parámetro del procedimiento almacenado especificado en SqlCommand y rellena la colección de Parameters del objeto SqlCommand especificado.

GetDeleteCommand()

Obtiene el objeto SqlCommand generado automáticamente que es necesario para realizar eliminaciones en la base de datos.

GetDeleteCommand(Boolean)

Obtiene el objeto SqlCommand generado automáticamente que es necesario para realizar eliminaciones en la base de datos.

GetInsertCommand()

Obtiene el objeto SqlCommand generado automáticamente que es necesario para realizar inserciones en la base de datos.

GetInsertCommand(Boolean)

Obtiene el objeto SqlCommand generado automáticamente que es necesario para realizar inserciones en la base de datos.

GetUpdateCommand()

Obtiene el objeto SqlCommand generado automáticamente que es necesario para realizar actualizaciones en la base de datos.

GetUpdateCommand(Boolean)

Obtiene el objeto SqlCommand generado automáticamente que es necesario para realizar actualizaciones en la base de datos.

QuoteIdentifier(String)

Genera automáticamente comandos de tabla única que se usan para conciliar los cambios realizados en un objeto DataSet con la base de datos SQL Server asociada. Esta clase no puede heredarse.

UnquoteIdentifier(String)

Dado in identificador entre comillas, devuelve el formato correcto sin comillas de ese identificador. Incluye una secuencia sin escape correcta de las comillas incrustadas que pueda haber en el identificador.

Se aplica a