Tengo una conexión sql remota en C# que necesita ejecutar una consulta y guardar sus resultados en el disco duro local de los usuarios. Hay una cantidad bastante grande de datos que esto puede devolver, por lo que es necesario pensar en una forma eficiente de almacenarlo. He leído antes que primero poniendo todo el resultado en la memoria y luego escribirlo no es una buena idea, así que si alguien pudiera ayudar, ¡sería genial!¿Cómo escribir eficientemente en el archivo desde el lector de datos SQL en C#?
estoy almacenando los datos del resultado de SQL en un DataTable, aunque estoy pensando que podría ser mejor hacer algo en while(myReader.Read(){...}
A continuación se muestra el código que obtiene los resultados:
DataTable t = new DataTable();
string myQuery = QueryLoader.ReadQueryFromFileWithBdateEdate(@"Resources\qrs\qryssysblo.q", newdate, newdate);
using (SqlDataAdapter a = new SqlDataAdapter(myQuery, sqlconn.myConnection))
{
a.Fill(t);
}
var result = string.Empty;
for(int i = 0; i < t.Rows.Count; i++)
{
for (int j = 0; j < t.Columns.Count; j++)
{
result += t.Rows[i][j] + ",";
}
result += "\r\n";
}
Así que ahora tengo este gran cadena de resultados. Y tengo la tabla de datos. Tiene que haber una forma mucho mejor de hacerlo?
Gracias.
Posible duplicado de http://stackoverflow.com/questions/2244655/how-to-serialize-a-datatable-to-a-string –
¿Estás escribiendo en un archivo plano sin formato, o sería mejor que poner los datos en columnas como una hoja de cálculo .csv? – DOK
plano comma-del archivo. – Sam