none
Como actualizar 2 tablas de un formulario segun condiciones - rangos RRS feed

  • Pregunta

  • Para que me entiendan:

    Tabla 1: Cabecera

    Id|Numero|Descripcion|Estado

    1|V001|Servicio de Fumigacion|Pendiente

    Tabla 2: Detalle

    Id|Numero|Codigo|Descripcion|Cantidad|Usuario|Estado

    1|V001|CD001|Overol|1|Carlos Paz|Pendiente

    2|V001|CD005|Mascara|1|Carlos Paz|Pendiente

    3|V001|CD003|Guantes|1|Carlos Paz|Pendiente

    4|V001|CD010|Reloj|1|Carlos Paz|Pendiente

    Entonces Supongas sea ese 1 caso entonces yo actualizo y atiendo entonces queda asi:

    Tabla 2: Detalle

    Id|Numero|Codigo|Descripcion|Cantidad|Usuario|Estado

    1|V001|CD001|Overol|1|Carlos Paz|Aprobado

    2|V001|CD005|Mascara|1|Carlos Paz|Aprobado

    3|V001|CD003|Guantes|1|Carlos Paz|Aprobado

    4|V001|CD010|Reloj|1|Carlos Paz|Desaprobado

    Entonces la idea es que el estado de la cabecera cambie 

    Tabla 1: Cabecera

    Id|Numero|Descripcion|Estado

    1|V001|Servicio de Fumigacion|Atendido

    Como lograr eso? Espero algun ejemplo guia se los agracederé

    Saludos



    • Editado Javier Roque miércoles, 17 de enero de 2018 21:20
    miércoles, 17 de enero de 2018 21:19

Respuestas

  • hola

    Algo que no ves es cual es la columna que relaciona las tablas? se supone que Detalle deberia tener una FK a Cabecera, no creo que el columna Numero sea correcta

    deberias tener el Id de cabecera en la tabla de detalle

    entonces usarias algo como esto

    using (SqlConnection conn = new SqlConnection("connection string")) 
    { 
    	conn.open();
    	
    	string sql = @"UPDATE Detalle SET Estado = 'Aprobado' WHERE IdCabecera = @id"; 
    	SqlCommand cmd = new SqlCommand(sql, conn); 
    	cmd.Parameters.AddWithValue("@id", 1); 
    	cmd.ExecuteNonQuery(); 
    
    	string sql2 = @"UPDATE Cabecera SET Estado = 'Atendido' WHERE IdCabecera = @id"; 
    	SqlCommand cmd2 = new SqlCommand(sql2, conn); 
    	cmd2.Parameters.AddWithValue("@id", 1); 
    	cmd2.ExecuteNonQuery(); 
    } 

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Javier Roque miércoles, 17 de enero de 2018 23:18
    miércoles, 17 de enero de 2018 21:26

Todas las respuestas

  • hola

    Algo que no ves es cual es la columna que relaciona las tablas? se supone que Detalle deberia tener una FK a Cabecera, no creo que el columna Numero sea correcta

    deberias tener el Id de cabecera en la tabla de detalle

    entonces usarias algo como esto

    using (SqlConnection conn = new SqlConnection("connection string")) 
    { 
    	conn.open();
    	
    	string sql = @"UPDATE Detalle SET Estado = 'Aprobado' WHERE IdCabecera = @id"; 
    	SqlCommand cmd = new SqlCommand(sql, conn); 
    	cmd.Parameters.AddWithValue("@id", 1); 
    	cmd.ExecuteNonQuery(); 
    
    	string sql2 = @"UPDATE Cabecera SET Estado = 'Atendido' WHERE IdCabecera = @id"; 
    	SqlCommand cmd2 = new SqlCommand(sql2, conn); 
    	cmd2.Parameters.AddWithValue("@id", 1); 
    	cmd2.ExecuteNonQuery(); 
    } 

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Javier Roque miércoles, 17 de enero de 2018 23:18
    miércoles, 17 de enero de 2018 21:26
  • Hola buenas tardes de echo si la relacion es por Numero, El id en la tabla detalle lo hay pero es 1 2 3 registros de detalle mientras la cabera es 1 registro con sus 3 detalles, lo debo tomar asi? por id?



    • Editado Javier Roque miércoles, 17 de enero de 2018 23:21
    miércoles, 17 de enero de 2018 23:11