Inicio › Foros › Lenguajes de programación, desarrollo, código fuente › .Net C# VB y PowerShell › System.ObjectDisposedException No se puede obtener acceso al objeto desechado › Respuesta a: System.ObjectDisposedException No se puede obtener acceso al objeto desechado
08/21/2019 a las 20:27
#3681
Varios
Moderador
Os paso un ejemplo de update:
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
public bool validarUsuario(int id_telegram) { string sqlEjecutar = "update cb_telegram set verificado = @si, fecha_verificacion = @fecha_verificacion " + "where id_telegram = @id_telegram"; try { MySqlCommand comandoSQL = new MySqlCommand(); conexionBD.Close(); comandoSQL.Connection = conexionBD; comandoSQL.CommandText = sqlEjecutar; comandoSQL.Parameters.Add("@si", MySqlDbType.VarChar).Value = "S"; comandoSQL.Parameters.Add("@id_telegram", MySqlDbType.Int32).Value = id_telegram; comandoSQL.Parameters.Add("@fecha_verificacion", MySqlDbType.Timestamp).Value = DateTime.Now; conexionBD.Open(); comandoSQL.ExecuteNonQuery(); return true; } catch (MySqlException ex) { new EscribirLog("Error al validar/verificar usuario en BD: " + ex.Message, true); return false; } catch (ObjectDisposedException ex) { new EscribirLog("Error al validar/verificar usuario en BD: " + ex.Message, true); return false; } } |
Otro de insert y update:
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
public bool insertarPeso(int idUsuario, Single peso, string observacion) { string sqlEjecutar; //Comprobamos si ya existe un peso en este día, para hacer un update if (obtenerExistePesoFecha(idUsuario, DateTime.Now)) { sqlEjecutar = "update cb_users_peso set peso = @peso, observacion = @observacion " + "where codigousuario = @codigousuario"; } else //Si no existe hacemos un insert { sqlEjecutar = "insert into cb_users_peso (codigousuario, peso, fecha, observacion) " + "values (@codigousuario, @peso, @fecha, @observacion)"; } try { MySqlCommand comandoSQL = new MySqlCommand(); conexionBD.Close(); comandoSQL.Connection = conexionBD; comandoSQL.CommandText = sqlEjecutar; comandoSQL.Parameters.Add("@codigousuario", MySqlDbType.Int32).Value = idUsuario; comandoSQL.Parameters.Add("@peso", MySqlDbType.Float).Value = peso; comandoSQL.Parameters.Add("@observacion", MySqlDbType.VarChar).Value = observacion; comandoSQL.Parameters.Add("@fecha", MySqlDbType.Timestamp).Value = DateTime.Now; conexionBD.Open(); comandoSQL.ExecuteNonQuery(); return true; } catch (MySqlException ex) { new EscribirLog("Error al insertar registro de peso en tabla cb_users_peso en BD: " + ex.Message, true); return false; } catch (ObjectDisposedException ex) { new EscribirLog("Error al validar/verificar usuario en BD: " + ex.Message, true); return false; } } |
Otro de select:
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
public int obtenerPosicionCBRank(int idUsuario) { string sqlEjecutar = "select ranking, ID from cb_users order by ranking desc"; int posicion = 0; try { conexionBD.Close(); MySqlCommand runSQL = new MySqlCommand(sqlEjecutar, conexionBD); conexionBD.Open(); MySqlDataReader datosSQL = runSQL.ExecuteReader(); //Recorremos los registros hasta llegar al que coincida con el ID del usuario while (datosSQL.Read()) { posicion++; if (datosSQL["ID"].ToString()==Convert.ToString(idUsuario)) break; } return posicion; } catch (MySqlException ex) { new EscribirLog("Error obtener información la posición en el CBRank: " + ex.Message, true); return 0; } catch (ObjectDisposedException ex) { new EscribirLog("Error al validar/verificar usuario en BD: " + ex.Message, true); return false; } } |