none
Consulta a Oracle 11g RRS feed

  • Pregunta

  • Intento realizar una consulta directa a oracle 11g pero tengo problemas, talvez alguien q me puede ayudar.

    Adjunnto el codigo:

    public decimal GetMontoTotal(string IDCliente)
            {
                decimal monto = 0;
                OracleConnection connection = null;
                connection = new OracleConnection(BancoDatos.Properties.Settings.Default.ConnectionString);
                connection.Open();
                OracleCommand command = connection.CreateCommand();
                try
                {
                    command.CommandText = "Select SUM(\"MontoMovimiento\") FROM \"Movimiento\" INNER JOIN \"Cuenta\" ON \"Cuenta\".\"IDCuenta\" = \"Movimiento\".\"IDCuenta\" WHERE \"Cuenta\".\"IDCliente\" =' " + IDCliente + " '";
                    OracleDataReader reader = command.ExecuteReader();
                    reader.Read();
                    monto = (decimal)(reader.GetOracleDecimal(0));
                    return monto;
                }
                catch (Exception ex)
                {

                    throw ex;
                }
                finally
                {
                    connection.Close();
                }
            }

    viernes, 3 de junio de 2016 17:21

Respuestas

  • Hola:

    Cambia tu consulta, por una normal...

    command.CommandText = "Select SUM(MontoMovimiento) FROM Movimiento M INNER JOIN Cuenta C ON C.IDCuenta = M.IDCuenta WHERE C.IDCliente ='" + IDCliente + " '";
    
    command.CommandType = CommandType.Text;

    Que el OracleClient se encarga de hacer el parser necesario.

    Salu2.


    Camilo Villa

    viernes, 3 de junio de 2016 22:59

Todas las respuestas

  • hola

    cual seria el problema? algun mensaje de error

    porque defines \" en el sql

    string query = "Select SUM(MontoMovimiento) FROM Movimiento INNER JOIN Cuenta ON Cuenta.IDCuenta = Movimiento."IDCuenta WHERE Cuenta.IDCliente = :id" + + " '";
    
    command.CommandText = query;
    
    command.Paramert.Add(":id", OracleType.Number).Value = IDCliente;


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 3 de junio de 2016 18:11
  • estas seguro que esa consulta la acepta Oracle? El poner las tablas así.. "Movimiento". Eso parece mas MySql. No soy un experto en Oracle pero he trabajado mucho con este motor y nunca he necesitado de poner las comillas dobles para definir los campos y tablas en la select

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 3 de junio de 2016 19:50
    Moderador
  • Hola:

    Cambia tu consulta, por una normal...

    command.CommandText = "Select SUM(MontoMovimiento) FROM Movimiento M INNER JOIN Cuenta C ON C.IDCuenta = M.IDCuenta WHERE C.IDCliente ='" + IDCliente + " '";
    
    command.CommandType = CommandType.Text;

    Que el OracleClient se encarga de hacer el parser necesario.

    Salu2.


    Camilo Villa

    viernes, 3 de junio de 2016 22:59