none
En un SELECT No me funciona el ORDER BY

    Pregunta

  • Buenas para todos es la primera vez que ingreso a este foro, por adelantado doy gracias a quien me pueda ayudar.

    Tengo el siguiente Select y quiero ordenar este para colocarlo en un dataset para poder sacar la ultima fecha de acuerdo a un numero que yo ingreso por el textBox1

    String CadenaSQL = " SELECT  rxlog.DDATE,  rxlog.SADDRESS  FROM rxlog   WHERE rxlog.IUNITNUMBER  =  Convert.ToString(textBox1.Text) ORDER BY rxlog.DDATE DESC";

     MySqlConnection Conexion = new MySqlConnection("server=127.0.0.1;User Id=root;database=control");

                  

                    StringCadenaSQL = " SELECT  rxlog.DDATE ,  rxlog.SADDRESS  FROM rxlog   WHERE rxlog.IUNITNUMBER  =  Convert.ToString(textBox1.Text) ORDER BY rxlog.DDATE DESC";

                  

    MySqlDataAdapter Adaptador = new MySqlDataAdapter(CadenaSQL, Conexion);

                    DataSet ds15 = new DataSet();

                                

                            

     Conexion.Open();

                   

     Adaptador.Fill(ds15);

                   

     textBox2.Text = Convert.ToString(ds15.Tables[0].Rows[0]  ["SADDRESS"]);

    pero me saca el siguiente error

    No se encontró MySqlException

    FUNCTION Convert.ToString does not exist

    Cundo le quito la parte de ORDER BY rxlog.DDATE DESC al Select si me funciona pero no me ordena y siempre me muestra la fecha más antigua.

     Muchas gracias a quien me pueda ayudar

    martes, 20 de marzo de 2012 23:10

Respuestas

  • es que deberias suar parametros

    MySqlConnection Conexion = new MySqlConnection("server=127.0.0.1;User Id=root;database=control");
    string StringCadenaSQL = " SELECT rxlog.DDATE, rxlog.SADDRESS FROM rxlog WHERE rxlog.IUNITNUMBER = ?numero ORDER BY rxlog.DDATE DESC";

    MySqlCommand cmd = new MySqlCommand(StringCadenaSQL, Conexion);
    cmd.Parameters.AddWithValue("?numero", textBox1.Text);  
     
    MySqlDataAdapter Adaptador = new MySqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    Adaptador.Fill(dt);

    textBox2.Text = Convert.ToString(dt.Rows[0]["SADDRESS"]);

    la clave esta en lo que marco en negrita

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Propuesto como respuesta Arthuro Zerda miércoles, 21 de marzo de 2012 1:24
    • Marcado como respuesta flami jueves, 22 de marzo de 2012 20:35
    martes, 20 de marzo de 2012 23:37
  • Leandro

    Qué pena ya me funciono reemplace todo como usted lo mando y funciona perfectamente Gracias

    • Marcado como respuesta flami jueves, 22 de marzo de 2012 20:35
    jueves, 22 de marzo de 2012 20:34

Todas las respuestas

  • Si pone atención, notará que la construcción del SQL es incorrecta.  De hecho, los colores delatan el problema:  ¿Por qué Convert.ToString() está del mismo color que el resto de la cadena de texto?  Esto le está indicando el problema.

    Jose R. MCP

    martes, 20 de marzo de 2012 23:16
  • es que deberias suar parametros

    MySqlConnection Conexion = new MySqlConnection("server=127.0.0.1;User Id=root;database=control");
    string StringCadenaSQL = " SELECT rxlog.DDATE, rxlog.SADDRESS FROM rxlog WHERE rxlog.IUNITNUMBER = ?numero ORDER BY rxlog.DDATE DESC";

    MySqlCommand cmd = new MySqlCommand(StringCadenaSQL, Conexion);
    cmd.Parameters.AddWithValue("?numero", textBox1.Text);  
     
    MySqlDataAdapter Adaptador = new MySqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    Adaptador.Fill(dt);

    textBox2.Text = Convert.ToString(dt.Rows[0]["SADDRESS"]);

    la clave esta en lo que marco en negrita

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Propuesto como respuesta Arthuro Zerda miércoles, 21 de marzo de 2012 1:24
    • Marcado como respuesta flami jueves, 22 de marzo de 2012 20:35
    martes, 20 de marzo de 2012 23:37
  • Leandro

    Mil gracias por tu respuesta pero:

    No sé que tengo que colocar en  ?numero del SELECT, pues este número yo creo que es el que ingreso por el texbox1, que siempre es diferente,

    Por otro lado tampoco sé que colocar en "?numero" del cmd.Parameters.AddWithValue("?numero"

    Otra pregunta También tengo que repetir el textBox1.Textdel l cmd.Parameters.AddWithVal textBox1.Text);  

    Disculpa por mi ignorancia pero es que recién empecé con c#

    Gracias por ayudarme

    jueves, 22 de marzo de 2012 16:54
  • Leandro

    Qué pena ya me funciono reemplace todo como usted lo mando y funciona perfectamente Gracias

    • Marcado como respuesta flami jueves, 22 de marzo de 2012 20:35
    jueves, 22 de marzo de 2012 20:34