none
Cómo liberar la memoria de mi aplicación?

    Question

  • BUenas tardes:

    Estoy trabajando sobre visual studio 2010 (c#). Ten una aplicación de consola, en ella realizo una consulta a una base de datos, y esos datos los extraigo y los voy guardando en un txt. El problema es que hace unos días estuve haciendo pruebas con unas tablas que ya no utilizo ahora, pero, ahora al hacer la consulta a las nuevas tablas, tambien me trae los datos de las tablas anteriores aunque ya no las estoy consultando en este momento. Creo que es algo que tiene que ver con la memoria, pero no se cómo corregirlo.

    Espero que me puedan ayudar. Muchas gracias.

    Este es una parte de mi código en donde voy guardando los datos de mi consulta.

    SqlDataReader reader = micomando.ExecuteReader();
                                while (reader.Read())
                                {
                                    StreamWriter writer2 = File.AppendText(fileextencion);
                                    StringBuilder sb = new StringBuilder();
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(0).ToString(), 0, ' ', 4));
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(1).ToString(), 0, ' ', 13));
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(2).ToString(), 0, ' ', 1));
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(3).ToString(), 0, ' ', 15));
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(4).ToString(), 1, ' ', 77));
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(5).ToString(), 0, ' ', 7));
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(6).ToString(), 0, ' ', 11));
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(7).ToString(), 0, ' ', 4));
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(8).ToString(), 0, ' ', 4));
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(9).ToString(), 0, ' ', 4)); 
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(10).ToString(), 1, ' ', 20));
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(11).ToString(), 1, ' ', 20));
                                    sb.Append(formato.regresaDatosAlineados(reader.GetValue(12).ToString(), 0, ' ', 6));
                                                                    String str = sb.ToString();
                                    writer2.WriteLine(str);
                                    writer2.Close();
                                }
                                reader.Close();
    Wednesday, December 12, 2012 10:15 PM

Answers

  • no creo que tenga que ver con lo que comentas, ya que la aplciacion la inicias y detienes y eso automaticamente hace que lo que pueda estar en memoria en alguna variable se elimine

    lo que no comentas es si estas nuevas tablas no tienen datos previos y tampoco mencionas como realizas la query, si filtroas por algun campo para taer registros en algun rango de tiempo o si siemrpe recuperas todos

    porque si la tabla de donde tomas los datos no le vas eliminando registros que ya habias procesado es seguro que la proxima ejecucion vuelva a tomar los mismos, o al menso marcarlos con algun flag que indique que ya se procesaron

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Thursday, December 13, 2012 2:36 AM