none
Funcionamiento incorrecto transaccion RRS feed

  • Pregunta

  • Hola que tal. Estoy haciendo un programa y en la parte de la transaccion la misma no funciona bien, puesto que crea un bug a pesar que el historial este mal (yo force la situacion para que el historial este mal), alguno sabra porque?

    public void insertBug(string titulo, string descripcion, int idProducto, int idPrioridad, int idCriticidad)
            {
                try
                {
                    comando.Connection = DataManager.AbrirConexion();
                    DataManager.BeginTransaction();
                    comando.CommandText = "INSERT INTO Bugs VALUES ('" + titulo + "','" + descripcion + "','" + idProducto + "','" + idPrioridad + "','" + idCriticidad + "','31/10/2018',1,1)";
                    comando.Transaction = DataManager.GetTransaction();
                    comando.ExecuteNonQuery();
                    comando.CommandText = "SELECT @@IDENTITY";
                    int identity = Convert.ToInt32(comando.ExecuteScalar());
                    comando.CommandText = "INSERT INTO BugsHistorico VALUES ('" + identity + "','" + titulo + "','" + descripcion + "','" + idProducto + "','" + idPrioridad + "','" + idCriticidad + "',1,1,'31/10/2018')";
                    comando.ExecuteNonQuery();
                    DataManager.Commit();
                }
                catch (Exception ex)
                {
                    DataManager.RollBack();
                }
                finally
                {
                    DataManager.CerrarConexion();
                }


    jueves, 1 de noviembre de 2018 1:41

Respuestas

  • hola

    >>puesto que crea un bug a pesar que el historial este mal (yo force la situacion para que el historial este mal), alguno sabra porque?

    Si lo haces en debug puede que la transacciones no funcionen

    prueba poniendo un exception en medio del codigo y ejecuta desde el .exe generado para validar las transacciones

    Ademas porque porgramas de esa forma concatenendo los valores en un string, esa es una pesima practica, tienes que usar paametros, algo como esto

    using (SqlConnection conn = new SqlConnection("<connection string>")) { 
        conn.Open(); 
    	
        string query = "INSERT INTO NombreTabla (campo1, campo2) VALUES (@param1, @param2)"; 
        SqlCommand cmd = new SqlCommand(query, conn); 
    
        cmd.Parameters.AddWithValue("@param1", valor1); 
        cmd.Parameters.AddWithValue("@param2", valo2); 
    
        cmd.ExecuteNonQuery(); 
    
    }  

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 1 de noviembre de 2018 1:57