SqlDataAdapter.UpdateCommand Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece un procedimiento almacenado o una instrucción de Transact-SQL para actualizar los registros del origen de datos.
public:
property Microsoft::Data::SqlClient::SqlCommand ^ UpdateCommand { Microsoft::Data::SqlClient::SqlCommand ^ get(); void set(Microsoft::Data::SqlClient::SqlCommand ^ value); };
public Microsoft.Data.SqlClient.SqlCommand UpdateCommand { get; set; }
member this.UpdateCommand : Microsoft.Data.SqlClient.SqlCommand with get, set
Public Property UpdateCommand As SqlCommand
Valor de propiedad
SqlCommand que se utiliza durante Update(DataSet) para actualizar los registros de la base de datos correspondientes a las filas modificadas en DataSet.
Ejemplos
En el ejemplo siguiente se crea y SqlDataAdapter se establecen las SelectCommandpropiedades , InsertCommandUpdateCommand y DeleteCommand . Se supone que ya ha creado un SqlConnection objeto .
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
}
public static SqlDataAdapter CreateCustomerAdapter(
SqlConnection connection)
{
SqlDataAdapter adapter = new SqlDataAdapter();
// Create the SelectCommand.
SqlCommand command = new SqlCommand("SELECT * FROM Customers " +
"WHERE Country = @Country AND City = @City", connection);
// Add the parameters for the SelectCommand.
command.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
command.Parameters.Add("@City", SqlDbType.NVarChar, 15);
adapter.SelectCommand = command;
// Create the InsertCommand.
command = new SqlCommand(
"INSERT INTO Customers (CustomerID, CompanyName) " +
"VALUES (@CustomerID, @CompanyName)", connection);
// Add the parameters for the InsertCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
adapter.InsertCommand = command;
// Create the UpdateCommand.
command = new SqlCommand(
"UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName " +
"WHERE CustomerID = @oldCustomerID", connection);
// Add the parameters for the UpdateCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
SqlParameter parameter = command.Parameters.Add(
"@oldCustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;
adapter.UpdateCommand = command;
// Create the DeleteCommand.
command = new SqlCommand(
"DELETE FROM Customers WHERE CustomerID = @CustomerID", connection);
// Add the parameters for the DeleteCommand.
parameter = command.Parameters.Add(
"@CustomerID", SqlDbType.NChar, 5, "CustomerID");
parameter.SourceVersion = DataRowVersion.Original;
adapter.DeleteCommand = command;
return adapter;
}
}
Comentarios
Durante Update, si esta propiedad no está establecida y la información de la clave principal está presente en DataSet, UpdateCommand se puede generar automáticamente si establece la SelectCommand propiedad y usa .SqlCommandBuilder A continuación, los comandos adicionales que no establezca se generan mediante .SqlCommandBuilder Esta lógica de generación requiere que la información de columna de clave esté presente en .DataSet Para obtener más información, vea Generar comandos con objetos CommandBuilder.
Cuando UpdateCommand se asigna a un objeto creado SqlCommandanteriormente, SqlCommand no se clona. UpdateCommand mantiene una referencia al objeto creado SqlCommand anteriormente.
Nota:
Si la ejecución de este comando devuelve filas, las filas actualizadas se pueden combinar con según DataSet cómo establezca la propiedad UpdatedRowSource del SqlCommand objeto.
Para cada columna que se propaga al origen de datos en Update, se debe agregar un parámetro a InsertCommand
, UpdateCommand
o DeleteCommand
.
La SourceColumn
propiedad del parámetro debe establecerse en el nombre de la columna. Esto indica que el valor del parámetro no se establece manualmente, pero se toma de la columna concreta de la fila procesada actualmente.