none
Alternativa para actualizar varios campos de un registro en SQL RRS feed

  • Pregunta

  • Buenas tardes Amigos, les agradecería mucho si me pueden ayudar con la sgte consulta:

    En un formulario tengo varios controles (combobox, textbox, numericUpDown, etc) con los cuales quiero actualizar los campos de un registro de una tabla SQL. Cuando tengo pocos controles en el formulario utilizo esta codificación:

    public void ActualizarValor(int idproyecto,ComboBox cbx1)
            {
                SqlConnection conexion = new SqlConnection("server = DESKTOP-XXXXXX\\SQLEXPRESS ; database=XXX; integrated security = true");
                conexion.Open();
                string cadena = "update Tabla1 set CampoNombre='" + cbx1.Text + "' where IdProyecto=" + idproyecto;
                SqlCommand comando = new SqlCommand(cadena, conexion);
                comando.ExecuteNonQuery();
                conexion.Close();
            }

    Sin embargo cuando quiera actualizar varios campos del registro el código para la variable cadena seria muy extenso, estaba pensando en utilizar un DataTable pero no se como poder actualizar un registro de una tabla mediante un DataTable o si existe una forma directa de actualizar todo el registro.

    Saludos

    Raúl

    miércoles, 29 de abril de 2020 20:51

Respuestas

  • hola

    >>cuando quiera actualizar varios campos del registro el código para la variable cadena seria muy extenso

    No deberias usar ninguna cadena, deberias usar parametros

    public void ActualizarValor(int idproyecto, string nombre)
    {
    	string connstring = "server = DESKTOP-XXXXXX\\SQLEXPRESS ; database=XXX; integrated security = true";
    	using(SqlConnection conexion = new SqlConnection())
    	{
    		conexion.Open();
    		
    		string cadena = "update Tabla1 set CampoNombre= @nombre where IdProyecto = @id";
    		var comando = new SqlCommand(cadena, conexion);
    		comando.Parameters.AddWithValue("@nombre", nombre);
    		comando.Parameters.AddWithValue("@id", idproyecto);
    		comando.ExecuteNonQuery();
    	}
    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 29 de abril de 2020 21:42