Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: dbadila en 3 Septiembre 2020, 05:17 am



Título: Ejecución parcial de segunda consulta
Publicado por: dbadila en 3 Septiembre 2020, 05:17 am
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?

Código:
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);
            }