none
Recuperar datos de una fila. RRS feed

  • Pregunta

  • Buenas tardes,

    Mi problema es el siguiente:

    Tengo que capturar dos campos de una tabla para usarlos después ... algo asi:

                        SqlCommand items = new SqlCommand();
                        items.CommandType = CommandType.Text;
                        items.Connection = conn;
                        items.CommandText = "SELECT familia, codigoean FROM articuslo WHERE ref = @articulo";
                        SqlParameter articulo = new SqlParameter("@articulo", SqlDbType.NVarChar, 20);
                        items.Parameters.Add(articulo).Value = 4305589;
    
                        SqlDataReader itm = itmmaster.ExecuteReader();
                       
                        while (itm.Read())
                           {
                               string fam = itm["familia"].ToString();
                               string codBarras = itm["codigoean"].ToString();
                           }

    Mi problema es que las variables 'fam' y 'codBarras' no las puedo usar despúes....

    Tengo que hacer la consulta de esos dos campos para usarlos más tarde en otro objeto. No se cómo acceder SOLO a la primera fila del datareader para recoger esos datos y luego utilizarlos.
    Si luego intento hacer por ejemplo:
    Console.Writeline = marca 
    No me deja ...

    ¿Como lo puedo hacer??

    Gracias!!

    lunes, 22 de febrero de 2010 18:33

Respuestas

  • hola

    eso se debe a que las has declarado internas al bloque while

    - recomendacion si solo vas a recuperar un registro no necesitas hacer un while, usa un if


    prueba algo como esto


    string query = "SELECT familia, codigoean FROM articuslo WHERE ref = @articulo";
    SqlCommand cmd = new SqlCommand(query, conn);

    SqlParameter articulo = new SqlParameter("@articulo", SqlDbType.NVarChar, 20);
    articulo.Value = "4305589";
    cmd.Parameters.Add(cmd);

    SqlDataReader reader = cmd.ExecuteReader();

    string fam = "";
    string codBarras = "";


    if (reader.Read())
    {
       am = reader["familia"].ToString();
       codBarras = reader["codigoean"].ToString();
    }

    //esta aprte es solo un ejemplo de como usar las variables
    TextBox1.Text = fam;
    TextBox2.Text = codBarras;

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Carlos Abella lunes, 22 de febrero de 2010 20:02
    lunes, 22 de febrero de 2010 18:47

Todas las respuestas

  • hola

    eso se debe a que las has declarado internas al bloque while

    - recomendacion si solo vas a recuperar un registro no necesitas hacer un while, usa un if


    prueba algo como esto


    string query = "SELECT familia, codigoean FROM articuslo WHERE ref = @articulo";
    SqlCommand cmd = new SqlCommand(query, conn);

    SqlParameter articulo = new SqlParameter("@articulo", SqlDbType.NVarChar, 20);
    articulo.Value = "4305589";
    cmd.Parameters.Add(cmd);

    SqlDataReader reader = cmd.ExecuteReader();

    string fam = "";
    string codBarras = "";


    if (reader.Read())
    {
       am = reader["familia"].ToString();
       codBarras = reader["codigoean"].ToString();
    }

    //esta aprte es solo un ejemplo de como usar las variables
    TextBox1.Text = fam;
    TextBox2.Text = codBarras;

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Carlos Abella lunes, 22 de febrero de 2010 20:02
    lunes, 22 de febrero de 2010 18:47
  • Hola Leandro,

    VAYA empanada que arrastro ... muchas gracias!!
    lunes, 22 de febrero de 2010 20:04