Вот небольшой пример того, как вы могли бы достичь того же результата путем потоковой передачи данных с использованием устройства чтения и записи в файл в виде потока (не проверено):
await using var textWriter = new StreamWriter("path\\to\\file.csv");
await using var writer = new CsvHelper.CsvWriter(textWriter, CultureInfo.InvariantCulture);
await using var connection = new SqlConnection("connection_string");
await using var cmd = new SqlCommand("select * from RecsCD", connection);
await connection.OpenAsync();
await using var reader = await cmd.ExecuteReaderAsync();
while (await reader.ReadAsync()) {
foreach (int i in Enumerable.Range(0, reader.FieldCount)) {
writer.WriteField(await reader.GetFieldValueAsync<object>(i));
}
await writer.NextRecordAsync();
}
await writer.FlushAsync();
Обратите внимание, что код зависит от CsvHelper библиотека.