Foros del Web » Programación para mayores de 30 ;) » .NET »

¿Como puedo meter un ExecuteNonQuery dentro de un MySqlDataReader?

Estas en el tema de ¿Como puedo meter un ExecuteNonQuery dentro de un MySqlDataReader? en el foro de .NET en Foros del Web. mi problema es que al ejecutar el ExecuteNonQuery me aparese "connection must be valid and open" ya le quite la coneccion closet y open dentro ...
  #1 (permalink)  
Antiguo 20/02/2014, 11:17
Avatar de qu1r30n  
Fecha de Ingreso: febrero-2014
Mensajes: 3
Antigüedad: 10 años, 9 meses
Puntos: 0
¿Como puedo meter un ExecuteNonQuery dentro de un MySqlDataReader?

mi problema es que al ejecutar el ExecuteNonQuery me aparese "connection must be valid and open"

ya le quite la coneccion closet y open dentro del while de las lineas pero siempre me aparese lo mismo

si alguien me puede alludar


Código:
                coneccion.Close();
                query8.CommandType = CommandType.Text;
                query8.Connection = coneccion;
                query8.CommandText = "SELECT ID,DINERO,PUNTOS,1_Linea,2_Linea,3_Linea from datos where NIVEL=" + cont_vertical_Fpago + ";";//selecciona la cantidad que hay en total en el nivel
                coneccion.Open();
                MySqlDataReader leyendo8 = query8.ExecuteReader();
                while (leyendo8.Read())
                {
                    ID = Convert.ToInt32(leyendo8["ID"]);
                    dinero_Fpago = (Convert.ToDouble(leyendo8["DINERO"].ToString()) * 0.05);
                    puntos_Fpago = (Convert.ToDouble(leyendo8["PUNTOS"].ToString()) * 0.05);
                    linea1_Fpago = Convert.ToInt32(leyendo8["1_Linea"]);
                    Linea2_Fpago = Convert.ToInt32(leyendo8["2_Linea"]);
                    Linea3_Fpago = Convert.ToInt32(leyendo8["3_Linea"]);

                   coneccion.Close();
                    query.CommandText = "update datos set  SE_PAGARA=" + dinero_Fpago + ",PUNTOS=" + puntos_Fpago + " WHERE ID=" + linea1_Fpago + ";";
                    coneccion.Open();
                    query.ExecuteNonQuery();
                    coneccion.Close();
                    query12.CommandText = "update datos set  SE_PAGARA=" + dinero_Fpago + ",PUNTOS=" + puntos_Fpago + " WHERE ID=" + Linea2_Fpago + ";";
                    coneccion.Open();
                    query12.ExecuteNonQuery();
                    coneccion.Close();
                    query13.CommandText = "update datos set  SE_PAGARA=" + dinero_Fpago + ",PUNTOS=" + puntos_Fpago + " WHERE ID=" + Linea3_Fpago + ";";
                    coneccion.Open();
                    query13.ExecuteNonQuery();

//falta acumulador de puntos es lo mismo que la linea de arriba
                }
                leyendo8.Close();
  #2 (permalink)  
Antiguo 20/02/2014, 13:15
Avatar de alan_69niupi  
Fecha de Ingreso: junio-2011
Mensajes: 200
Antigüedad: 13 años, 6 meses
Puntos: 17
Respuesta: ¿Como puedo meter un ExecuteNonQuery dentro de un MySqlDataReader?

hay un gran detalle en ese código, estas abriendo y cerrando la conexión cada vez que hacer un query y veo que son de tipo UPDATE . ese podria ser una gran error, porque si hace las primeras 2 actualizaciones y las demas no , ¿eso no afecta la estabilidad de tu base de datos?

porque no usas transacciones, al no poder ejecutarse alguna acción la transaccion hace un rollback. así te estas seguro de que estas usando una única conexión y que si algo falla esta hará un rollback y no habrá problema.


saludos!!!!

Etiquetas: meter, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:18.