· NET  · Lectura en 5 min

C#: Cómo usar SqlCommand Update

En el desarrollo de aplicaciones con acceso a bases de datos SQL, el manejo adecuado de las operaciones CRUD (Crear, Leer, Actualizar, Eliminar) es fundamental para la integridad y eficiencia del sistema. Dentro de C#, la clase SqlCommand ofrece métodos poderosos para interactuar con bases de datos, siendo el método Update crucial para actualizar registros existentes.

En el desarrollo de aplicaciones con acceso a bases de datos SQL, el manejo adecuado de las operaciones CRUD (Crear, Leer, Actualizar, Eliminar) es fundamental para la integridad y eficiencia del sistema. Dentro de C#, la clase SqlCommand ofrece métodos poderosos para interactuar con bases de datos, siendo el método Update crucial para actualizar registros existentes.

El comando SQL UPDATE se utiliza para modificar los datos de una o más filas de una tabla en una base de datos relacional. En este artículo, te voy a mostrar cómo usar este comando con el lenguaje de programación C# y la clase SqlCommand, que forma parte del proveedor de datos de SQL Server para .NET Framework.

¿Qué es el comando SQL UPDATE?

El comando SQL UPDATE tiene la siguiente sintaxis general:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

Este comando permite actualizar los valores de una o más columnas de una tabla, especificando la condición que deben cumplir las filas que se quieren modificar. Si no se indica ninguna condición, se actualizarán todas las filas de la tabla.

Por ejemplo, si tenemos una tabla llamada Estudiantes con los siguientes datos:

P_IDApellidoNombreDirecciónCiudad
1HansenOlaTimoteoBarcelona
2SvendsonToveBorgesMadrid
3PettersonKariCervantesValencia
4NilsenJohanGoyaSevilla

Podemos usar el comando SQL UPDATE para cambiar el nombre y la dirección de Ola Hansen por Ana Pérez y Gran Vía, respectivamente, de la siguiente manera:

UPDATE Estudiantes
SET Nombre = 'Ana', Dirección = 'Gran Vía'
WHERE P_ID = 1;

El resultado sería:

P_IDApellidoNombreDirecciónCiudad
1HansenAnaGran VíaBarcelona
2SvendsonToveBorgesMadrid
3PettersonKariCervantesValencia
4NilsenJohanGoyaSevilla

También podemos usar el comando SQL UPDATE para incrementar o decrementar los valores de una columna numérica, usando los operadores aritméticos (+, -, *, /). Por ejemplo, si tenemos una tabla llamada Productos con los siguientes datos:

IdNombrePrecioStock
1Camiseta1050
2Pantalón2040
3Sudadera3030
4Chaqueta4020

Podemos usar el comando SQL UPDATE para aplicar un descuento del 10% al precio de todos los productos y aumentar el stock en 5 unidades, de la siguiente manera:

UPDATE Productos
SET Precio = Precio * 0.9, Stock = Stock + 5;

El resultado sería:

IdNombrePrecioStock
1Camiseta955
2Pantalón1845
3Sudadera2735
4Chaqueta3625

¿Cómo usar el comando SQL UPDATE con C#?

Para usar el comando SQL UPDATE con C#, necesitamos usar la clase SqlCommand, que representa una instrucción SQL o un procedimiento almacenado que se va a ejecutar en una base de datos de SQL Server. Esta clase tiene las siguientes propiedades y métodos principales:

  • CommandText: Es una cadena que contiene la instrucción SQL o el nombre del procedimiento almacenado que se va a ejecutar. En este caso, debemos asignarle el comando SQL UPDATE con los valores y la condición que queramos.

  • Connection: Es un objeto de la clase SqlConnection que representa la conexión con la base de datos. Debemos asignarle una conexión válida y abierta antes de ejecutar el comando.

  • Parameters: Es una colección de objetos de la clase SqlParameter que representan los parámetros de la instrucción SQL o el procedimiento almacenado. Podemos usar esta colección para asignar valores dinámicos al comando SQL UPDATE, usando el método AddWithValue o el método Add. Los parámetros se indican con el símbolo @ seguido de un nombre en el comando SQL UPDATE.

  • ExecuteNonQuery: Es un método que ejecuta el comando SQL UPDATE y devuelve el número de filas afectadas por la operación. Este método se usa para las instrucciones SQL que no devuelven ningún resultado, como INSERT, UPDATE o DELETE.

Veamos un ejemplo de cómo usar el comando SQL UPDATE con C# para modificar los datos de la tabla Estudiantes que hemos visto antes. Supongamos que queremos cambiar el nombre y la dirección de un estudiante, introduciendo sus datos en unos cuadros de texto. El código sería el siguiente:

// Obtenemos los datos de los cuadros de texto
string nombre = textBoxNombre.Text;
string apellido = textBoxApellido.Text;
string direccion = textBoxDireccion.Text;
string ciudad = textBoxCiudad.Text;

// Creamos la cadena de conexión con la base de datos
string connectionString = System.Configuration.ConfigurationManager
.ConnectionStrings["LocalDB"].ConnectionString;

// Creamos un objeto de la clase SqlConnection con la cadena de conexión
using (SqlConnection connection = new SqlConnection(connectionString))
{
    // Abrimos la conexión con la base de datos
    connection.Open();

    // Creamos un objeto de la clase SqlCommand con el comando SQL UPDATE
    using (SqlCommand command = connection.CreateCommand())
    {
        // Asignamos el comando SQL UPDATE al objeto SqlCommand
        command.CommandText = "UPDATE Estudiantes SET Nombre = @nombre, Dirección = @direccion WHERE Apellido = @apellido AND Ciudad = @ciudad";

        // Añadimos los parámetros con los valores de los cuadros de texto
        command.Parameters.AddWithValue("@nombre", nombre);
        command.Parameters.AddWithValue("@apellido", apellido);
        command.Parameters.AddWithValue("@direccion", direccion);
        command.Parameters.AddWithValue("@ciudad", ciudad);

        // Ejecutamos el comando SQL UPDATE y obtenemos el número de filas afectadas
        int rows = command.ExecuteNonQuery();

        // Mostramos un mensaje indicando el resultado de la operación
        if (rows > 0)
        {
            MessageBox.Show("Se ha modificado el estudiante con éxito.");
        }
        else
        {
            MessageBox.Show("No se ha encontrado ningún estudiante con esos datos.");
        }
    }
}

Como puedes ver, el código es muy similar al que usamos para insertar datos con el comando SQL INSERT, solo que cambiamos la instrucción SQL y la condición que usamos para identificar el estudiante que queremos modificar.

Ventajas de usar el comando SQL UPDATE con C#

Usar el comando SQL UPDATE con C# tiene varias ventajas, entre las que se pueden destacar las siguientes:

  • Permite modificar los datos de una base de datos de SQL Server de forma sencilla y rápida, sin necesidad de usar herramientas externas o interfaces gráficas.

  • Permite usar parámetros para asignar valores dinámicos al comando SQL UPDATE, lo que aumenta la seguridad y la flexibilidad del código, evitando la inyección de SQL y facilitando la validación y el formateo de los datos.

  • Permite controlar el resultado de la operación, ya que el método ExecuteNonQuery devuelve el número de filas afectadas por el comando SQL UPDATE, lo que nos permite mostrar mensajes de confirmación o de error al usuario.

Conclusión

En este artículo, has aprendido cómo usar el comando SQL UPDATE con C#, una forma eficaz y práctica de modificar los datos de una base de datos de SQL Server desde una aplicación .NET. Has visto qué es el comando SQL UPDATE, cómo se usa con la clase SqlCommand, qué propiedades y métodos tiene esta clase y qué ventajas tiene usar este comando con C#.

Espero que este artículo te haya sido útil y que hayas podido aprender algo nuevo. Si te ha gustado, compártelo con tus amigos y déjame un comentario con tu opinión o tus dudas.

    Compartir
    Volver al blog

    Artículos relacionados

    Ver todos los artículos »
    Herramienta para contar palabras online

    Herramienta para contar palabras online

    Una herramienta online para contar palabras permite a usuarios evaluar rápidamente la longitud de sus documentos, artículos, o asignaciones escolares, garantizando que cumplan con los requisitos específicos de palabras o caracteres. Esta guía explora el uso de dichas herramientas online, mostrando cómo pueden ayudar a mejorar la precisión y eficiencia del proceso de escritura.