none
La consulta no me devuelve un Id correcto RRS feed

  • Pregunta

  • Hola, tengo el siguiente codigo, y lo que quiero es que la consulta me devuelva el Id que se corresponde con el nombre del tipo que le paso.

    Siempre me devuelve -1, y al ejecutar la consulta fuera del programa me da el resultado correcto, no se cual puede ser el error.

    AbrirConexion();

    string queryString = "Select IdTipo from tipoarticulo where 'Nombre'='"+tipo+"'";
    MySqlCommand command = new MySqlCommand(queryString, connection);
    int j=0;
    try
    {
       j = command.ExecuteNonQuery();
    }
    finally
    {
       CerrarConexion();
    }

     return j;

    Un saludo y gracias.

    lunes, 15 de noviembre de 2010 10:24

Respuestas

Todas las respuestas

  • Hola.

    No pongas el nombre de la columna entre comillas simples. Es por ello por lo que te retorna un recordset vacío.

     


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/

    lunes, 15 de noviembre de 2010 10:36
    Moderador
  • Ups, al hacer pruebas se me olvidó quitarlo, pero aun asi me sigue devolviendo -1.
    lunes, 15 de noviembre de 2010 10:42
  • Si la consulta la ejecutas directamente y te devuelve bien el resultado, el problema no está en SQL Server, parece más algo del propio código y probablemente te podrán ayudar mejor en el foro de desarrollo .NET

    No sé si tendrá que ver, pero si estás ejecutando una consulta y el método que llamas es "ExecuteNonQuery" tiene pinta de que algo no cuadra...

    lunes, 15 de noviembre de 2010 10:47
  • Gracias, tenías razón el problema es que había que utilizar ExecuteReader.
    lunes, 15 de noviembre de 2010 12:39
  • Hola,

    prueba con este codigo te vas a dar resultado ¿..?

       using (MySqlConnection cn = new MySqlConnection ("conection"))

            {

                MySqlCommand cmd = new MySqlCommand("select campo1 from tabla where camp1 =@valor");

                cmd.Parameters.AddWithValue("@valor", 2);

                cn.Open ();

                MySqlDataReader rd = cmd.ExecuteReader();

     

                if (rd.HasRows )

                {

                    txtnombre = rd["campo1"].ToString();

     

                }

                cn.Close();

     

            }

     


    Enmanuel Grullard@Developer ASP.NET,ASP.NET MVC,VB6,VB.NET ,C#.NET
    lunes, 15 de noviembre de 2010 13:19