none
Problema con el metodo Fill de dataAdapter RRS feed

  • Pregunta

  • Hola a todos;

    Tengo el siguiente codigo:

    else{    

    using (SqlConnection conn = new SqlConnection("Data Source=Diego-PC;initial Catalog=PdeTV;"

                           + "Integrated Security=True"))                    

    {                         conn.Open();  

                               string sql = "SELECT * FROM SOLICI_SERV";

                            //WHERE NITCLIENTE=@nit";

                            SqlCommand cmd = new SqlCommand(sql, conn);

                            cmd.Parameters.AddWithValue("@nit", Convert.ToInt32(nit.Text));  

                           SqlDataReader reader = cmd.ExecuteReader();

                                                     if (reader.Read())  

                           {    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM SOLICI_SERV WHERE NITCLIENTE=@nit",conn);

                                DataTable dt = new DataTable();                            

                               da.Fill(dt);ME marca aqui el  el sgte error:"ya hay un datareader asociado a este command,debe cerrarlo  primero

                                dataGridView1.DataSource = dt;

                                dataGridView1.Visible = true;  

                                //nit.Text = Convert.ToString(reader["NIT_CLIENTE"]);                                                                                                  conn.Close();

     }

                        }

    ME resulta el sgte error:"ya hay un datareader asociado a este command,debe cerrarlo primero".

    el problema es que no se a que se refiere la marcacion a donde debp cerrar si empece con una instruccion using.

    La idea en ultimas es que quiero por intermedio de esta rutina que me traiga el datagrid donde va a venir las solicitudes de servicio cuando yo le de un nit de cliente

    gracias al que pueda ayudarme

     

    sábado, 26 de julio de 2014 0:19

Todas las respuestas

  • hola

    recuerda que no puede abrir mas de un cursor a la db sino has habilitado el mismo por medio de MARS

    Varios conjuntos de resultados activos (MARS)

    habilita este en el connection string

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 26 de julio de 2014 1:26
  • Hola Tutini:

    Lei el link que me dices tratan sobre dos ejercicios en el uno con dos objetos commnad y dos objetos sqldatareader en el otro tres command y dos objetos  sqldatareader.En uno de los ejercicios un command utiliza un sqldatadeader para llenar elotro.

    Quedo perdido porque no se involucra ningun datagrid.

    Bueno cualquier coemntario gracias. 

    martes, 29 de julio de 2014 21:50
  • Hola Tutini:

    Lo que debe hacer la rutina que escribo fundamentalmente es si reconoce el campo nit de cliente saque por

    intermedio de un datagrid todos las solicitudes de servicios que correspondan a ese nit.

    El evento lo hace por intermedio de un evento a un textbox llamado nit_click, hasta alli bien y todo pero al ejecu

    tar el evento me sale el problema que envie previamente. 

    Lei tu documento pero pues no se como aplicarlo al programa ,porque no involucra nada de datagrid .

    Sera que no me podrias enviar un ejemplo de programa dentro de los que tienes donde me sirva lo que necesito hacer?

    Estare muy agradecido.

    miércoles, 30 de julio de 2014 17:13