• Lunes 29 de Abril de 2024, 00:12

Autor Tema:  error de consulta  (Leído 1511 veces)

spider1602

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
error de consulta
« en: Martes 29 de Julio de 2008, 02:19 »
0
por favor ayuda tengo mi consulta la pongo en la parte de abajo, y me marca un error que es "Ya hay un DataReader abierto asociado a este comando, debe cerrarlo primero." y es la unica consulta en mi form y no se por que marca ese error quiero comparar 2 fechas en la sentencia sql y no se por que marque eso de eso si hago la consulta hacia algo que no sean las fechas por ejemplo al nombre no me marca error... Gracias cualquier ayuda, el tipo de dato en mi sqlserver 2005 es datetime

  conexion con = new conexion();
            SqlTransaction transaction = null;
            SqlCommand command = con.c.CreateCommand();
            try
            {
                // BeginTransaction() Requires Open Connection
                con.c.Open();
               
                transaction = con.c.BeginTransaction();
                DateTime   d = DateTime.Parse(this.dateTimePicker1.Text );
                // Assign Transaction to Command
                command.Transaction = transaction;

                // Execute 1st Command
               
                command.CommandText = "select * from caja where fecha BETWEEN '" + d + "' and '" + d + "'";
               
                SqlDataReader rdr = command.ExecuteReader();
           
                while (rdr.Read())
                {
                    listView3.Items.Add(new ListViewItem(new String[] { Convert.ToString(rdr.GetInt32(0)), Convert.ToString(rdr.GetDateTime(1)), Convert.ToString(rdr.GetDouble(2)), rdr.GetString(4), rdr.GetString(5), rdr.GetString(6), rdr.GetString(7), rdr.GetString(8) }));
                }
                rdr.Close();
                transaction.Commit();
            }
            catch
            {
                transaction.Rollback();
                throw;
            }
            finally
            {
                con.c.Close();
            }