none
Consulta en Oledb RRS feed

  • Pregunta

  •  Buenas tardes chicos ojala me puedan ayuda 
    Deseo realizar una consulta para sumar el total de una columna que se llama 25-50 pero cuando hago el query me regresa un 0 cuando la ejecuto, Si la ejecuto en acces si me funciona pero creo que tengo un error en el codigo que no puedo ver 

    Les dejo mi codigo 

                            

    conector = new OleDbConnection(busqueda);

                actualizardb = new OleDbCommandBuilder(adaptador);


                adaptador = new OleDbDataAdapter("Select * From Granules", conector);
                conector.Open();
                DataSet table = new DataSet();
                adaptador.Fill(table);

                adaptador.InsertCommand = new OleDbCommand();
                adaptador.InsertCommand.Connection = conector;
                adaptador.InsertCommand.CommandText = "Select Sum(25-50) From Granules";
               TXBTOTAL.Text = adaptador.InsertCommand.ExecuteNonQuery().ToString();

    De antemano gracias

    martes, 2 de octubre de 2018 1:03

Respuestas

  • hola

    Podrias intentar poner la columna entre [] eso a veces resuelve el problema

    lo que no entiendo es porque usas el

    adaptador.InsertCommand

    para realizar un SELECT, eso no es correcto, tampoco se porque tan complicado podria ser asi de facil

    string query = "Select Sum([25-50]) From Granules";
    OleDbCommand cmd = new OleDbCommand(query, conector);
    
    TXBTOTAL.Text = Convert.ToString(cmd.ExecuteScalar());


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    martes, 2 de octubre de 2018 15:14

Todas las respuestas

  • Hola Juan Castañeda:

    Tu error debiera de estar en la utilizacion de insertCommand, "adaptador.InsertCommand.CommandText = "Select Sum(25-50) From Granules";" ya que le estas indicando una sentencia que no retorna valores, cuando debiera de ser lo contrario.

    https://msdn.microsoft.com/es-es/library/system.data.sqlserverce.sqlcedataadapter.selectcommand(v=vs.100).aspx

    Espero te sirva.

    martes, 2 de octubre de 2018 5:38
  • Hay por lo menos 3 errores:

    1) Estás usando el InsertCommand de un DataAdapter para enviar una consulta de selección, desde fuera del dataadaper. Esto por sí solo no tiene por qué fallar, pero hace tu código terriblemente confuso.

    2) Estás usando el método ExecuteNonQuery. Este método NO devuelve el resultado de la consulta, sino el número de filas afectadas, que en este caso es 0 porque la Select no modifica ninguna fila. Lo que realmente deberías usar el método ExecuteScalar.

    3) Si haces Select Sum(25-50) eso es lo mismo que Select Sum(-25), es decir estás sumando un número constante, no el valor de una columna. Si la columna se llama "25-50" hay que encerrarla entre corchetes para que el sistema sepa que es un nombre de columna y no una resta de dos números:

    Select Sum([25-50]) from ...

    martes, 2 de octubre de 2018 6:27
    Moderador
  • hola

    Podrias intentar poner la columna entre [] eso a veces resuelve el problema

    lo que no entiendo es porque usas el

    adaptador.InsertCommand

    para realizar un SELECT, eso no es correcto, tampoco se porque tan complicado podria ser asi de facil

    string query = "Select Sum([25-50]) From Granules";
    OleDbCommand cmd = new OleDbCommand(query, conector);
    
    TXBTOTAL.Text = Convert.ToString(cmd.ExecuteScalar());


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    martes, 2 de octubre de 2018 15:14
  • Gracias amigo me has salvado
    Aun soy un poco novato en esto y creo que aveces me complico mucho las cosas y si realmente es asi de sencillo
    Saludos.
    miércoles, 3 de octubre de 2018 12:54