Mam zdalne połączenie sql w języku C#, które musi wykonać kwerendę i zapisać wyniki na lokalnym dysku twardym użytkownika. Istnieje dość duża ilość danych, które mogą zostać zwrócone, więc trzeba pomyśleć o skutecznym sposobie jej przechowywania. Czytałem wcześniej, zanim po raz pierwszy zapisałem cały wynik w pamięci, a następnie napisanie go nie jest dobrym pomysłem, więc jeśli ktoś mógłby pomóc, byłoby wspaniale!Jak skutecznie pisać do pliku z SQL datareader w języku C#?
Jestem obecnie przechowywania danych wynikowych sql do DataTable, chociaż mam na myśli to może być robić coś w while(myReader.Read(){...}
Poniżej lepiej jest kod, który pobiera wyniki:
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";
}
Więc teraz mam to ogromny ciąg wyników. I mam datatable. Musi być o wiele lepszy sposób na zrobienie tego?
Dzięki.
Możliwy duplikat http://stackoverflow.com/questions/2244655/how-to-serialize-a-datatable-to-a-string –
Czy piszesz tylko do niesformatowanego pliku płaskiego, czy byłoby lepiej umieścić dane w kolumnach, takich jak arkusz kalkulacyjny .csv? – DOK
płaski plik comma-del. – Sam