Ejecución parcial de segunda consulta

Iniciado por dbadila, 3 Septiembre 2020, 05:17 AM

0 Miembros y 1 Visitante están viendo este tema.

dbadila

He estado intentando crear una app que lee datos de una base de datos de access via C#, sin embargo al ejecutarse las consultas, y agregar los resultados al datagridview solo despliega 511 registros de 7684,  he realizado esto y se debe a que la segunda consulta solo se ejecuta hasta el registros 511 a que se debe esto?

string myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
                           "Data Source=OcupacionBA.mdb;";

            List<String> resultados = new List<String>();

            try
            {
                // Open OleDb Connection
                OleDbConnection myConnection = new OleDbConnection();
                myConnection.ConnectionString = myConnectionString;
                myConnection.Open();


                    // Execute Queries
                    OleDbCommand cmd = myConnection.CreateCommand();
                cmd.CommandText = "select Estacion,Frecuencia,Min(Intensidad),Max(Intensidad),Count(Frecuencia) from frecB GROUP BY Estacion, Frecuencia";
                    OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); // close conn after complete




                while (reader.Read())
                {
                    resultados.Add(reader.GetString(0) + "," + reader.GetDecimal(1) + "," + reader.GetDecimal(2) + "," + reader.GetDecimal(3) + "," + reader.GetInt32(4));
                }


                reader.Close();



            }
            catch (Exception ex)
            {
                Console.WriteLine("OLEDB Connection FAILED: " + ex.Message);
            }



            string[] R1 = resultados.ToArray();

            MessageBox.Show("" + R1.Length);





            try
            {
                // Open OleDb Connection
                OleDbConnection myConnection = new OleDbConnection();
                myConnection.ConnectionString = myConnectionString;
                myConnection.Open();
                int a = 0;
                for (int i = 0; i < R1.Length; ++i)
                {

                string[] datos = R1[i].Split(',');

                string estacion = datos[0];

                    double umbral = Convert.ToDouble(datos[2]) + 5;

                double frecuencia = Convert.ToDouble(datos[1]);

                // Execute Queries
                OleDbCommand cmd = myConnection.CreateCommand();
                cmd.CommandText = "select count(Id) from frecB WHERE Intensidad >=" + umbral + " AND Frecuencia =" + frecuencia + " AND Estacion = \"" + estacion + "\"";
                OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); // close conn after complete

                    int mm = 0;


                    while (reader.Read())
                    {
                    mm = reader.GetInt32(0);


                    DataGridViewRow fila = new DataGridViewRow();
                    fila.CreateCells(dataGridView1);
                    fila.Cells[0].Value = datos[0];
                    fila.Cells[1].Value = Convert.ToDouble(datos[1]);
                    fila.Cells[2].Value = Convert.ToDouble(datos[2]);
                    fila.Cells[3].Value = Convert.ToDouble(datos[3]);
                    fila.Cells[4].Value = umbral;
                    fila.Cells[5].Value = Math.Round(Convert.ToDouble(mm)/ Convert.ToDouble(datos[4])*100,4);
                    dataGridView1.Rows.Add(fila);
                        a = a + 1;

                    }



                }








            }
            catch (Exception ex)
            {
                Console.WriteLine("OLEDB Connection FAILED: " + ex.Message);
            }