none
Borrar registro de base de datos. RRS feed

  • Pregunta

  • Buenos días,

    La aplicación en la que trabajo es Silverlight 5 con una base de datos PL SQL developer y tengo un metodo de agendamiento para los días Lunes que tiene la opción de agregar y ahora quiero hacer uno para borrar ese mismo registro.

    Les paso el codigo para agregar los datos si me podrian ayudar para hacer que borre.

    #region AgendaVendedoresLunes
             [OperationContract]
             public List<VisitaCliente> AgendaVendedores(string cod_vendedor,string nro_semana,string año_mes,string nro_sucursal,string dia_semana)
             {
                 List<VisitaCliente> lista = new List<VisitaCliente>();
                 string CadenaConexion = ConfigurationManager.AppSettings["CadenaConexion2"];
                 string queryOracle = "select d.fvcd_cod_cliente,d.fvcd_nombre_cliente,y.fvc_fecha_visita,d.fvcd_contacto_cliente,decode(d.fvcd_fecha_inicio, null,'No Visitado','sf','Imprevista','Visitado')EstadOVisita from fac_visita_vendedor y, fvc_detalle_visita_vendedor d,v_fac_vend_sucursal s where d.fvcd_cod_visita=y.fvc_cod_visita and  y.fvc_cod_vendedor=s.VESU_LEGAJO and s.VESU_SUC='" + nro_sucursal + "' and y.fvc_estado_visita in ('N','R')and y.fvc_cod_vendedor='" + cod_vendedor + "' and d.fvcd_mes_año='" + año_mes + "'  and d.fvcd_dia_semana=1 and d.fvcd_nro_semana='" + nro_semana + "' union SELECT y.gps_cliente,(select c.cli_nom from fin_cliente c where c.cli_codigo= y.gps_cliente ), to_char(trunc(y.gps_fecha_fin),'dd/mm/yyyy'),'s/d','Impre'from fac_gps_cast y where y.gps_vendedor='" + cod_vendedor + "' and trunc(y.gps_fecha_fin)='" + dia_semana + "'  aNd  y.gps_estado='S'   and y.gps_cliente not in  (select d.fvcd_cod_cliente from fac_visita_vendedor y, fvc_detalle_visita_vendedor d,v_fac_vend_sucursal s where d.fvcd_cod_visita=y.fvc_cod_visita and  y.fvc_cod_vendedor=s.VESU_LEGAJO and s.VESU_SUC='" + nro_sucursal + "' and y.fvc_estado_visita in ('N','R')and y.fvc_cod_vendedor='" + cod_vendedor + "' and d.fvcd_mes_año='" + año_mes + "' and d.fvcd_dia_semana=1 and d.fvcd_nro_semana='" + nro_semana + "')";
                 OracleConnection conexionOracle = new OracleConnection(CadenaConexion);
                 OracleCommand comandoOracle = new OracleCommand(queryOracle, conexionOracle);
                 conexionOracle.Open();
                 OracleDataReader registrosOracle = comandoOracle.ExecuteReader();
                 while (registrosOracle.Read())
                 {
                     VisitaCliente registro = new VisitaCliente();
                     registro.CodCliente = registrosOracle[0].ToString();
                     registro.Nombrecliente = registrosOracle[1].ToString();
                     registro.fecha_visita = registrosOracle[2].ToString();
                     registro.contacto = registrosOracle[3].ToString();
                     registro.EstadoVisita = registrosOracle[4].ToString();
                     lista.Add(registro);
                 }
                 registrosOracle.Close();
                 conexionOracle.Close();
                 return lista;
             }
             #endregion

    viernes, 25 de septiembre de 2015 14:35

Respuestas

  • Hola Vicente93,

    Tienes la parte "complicada", tirar una consulta delete es más simple:

    string CadenaConexion = ConfigurationManager.AppSettings["CadenaConexion2"];
    
    string queryOracle = "DELETE FROM MiTabla WHERE Codigo = @Codigo";
    
    OracleConnection conexionOracle = new OracleConnection(CadenaConexion);
    
    OracleCommand comandoOracle = new OracleCommand(queryOracle, conexionOracle);
    comandoOracle.Parameters.AddWithValue("@Codigo", Codigo);
    
    conexionOracle.Open();
    comandoOracle.ExecuteNonQuery();
    conexionOracle.Close();

    viernes, 25 de septiembre de 2015 16:08

Todas las respuestas

  • bueno esto no es un foro de desarrollo ni tampoco de Oracle, así que muy adecuada la pregunta para los conocimientos que se "garantizan" no es, aún así

    para borrar un registro lo único que tienes que hacer es ejecutar tu comandooracle, en donde el query sea tu sentencia delete (rellenar la variable queryOracle con el delete que quieras hacer) y en lugar de hacer comandoOracle.ExecuteREader()

    has de hacer ComandoOracle.ExecuteNonQuery(); como no devolverá nada, no tienes que poner el while y con cerrar la conexión ... listo.

    ¿es a eso a lo que te refieres?


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    viernes, 25 de septiembre de 2015 15:08
    Moderador
  • Hola Vicente93,

    Tienes la parte "complicada", tirar una consulta delete es más simple:

    string CadenaConexion = ConfigurationManager.AppSettings["CadenaConexion2"];
    
    string queryOracle = "DELETE FROM MiTabla WHERE Codigo = @Codigo";
    
    OracleConnection conexionOracle = new OracleConnection(CadenaConexion);
    
    OracleCommand comandoOracle = new OracleCommand(queryOracle, conexionOracle);
    comandoOracle.Parameters.AddWithValue("@Codigo", Codigo);
    
    conexionOracle.Open();
    comandoOracle.ExecuteNonQuery();
    conexionOracle.Close();

    viernes, 25 de septiembre de 2015 16:08