Как экспортировать данные в файл .csv в linq c# нажатием кнопки - PullRequest
0 голосов
/ 27 января 2020

Я просто вывожу данные таблицы (оценки) из базы данных в файл .csv. Я хочу сделать это с помощью нажатия кнопки. Я использую WPF и сохраняю табличные данные в SQLite. Примечание. Таблица не отображается в таблице результатов DataGridView. Имеются столбцы: PersonId, PersonName, ScoreDate

 private void ExportToCSV(object sender, RoutedEventArgs e)
    {

        using (StreamWriter sw = File.AppendText(@"C:\Users\MAFA\Desktop\newfolder\endscores.csv"))
        {
            // how can i here call the table from the database ?! 

        };

    }

1 Ответ

0 голосов
/ 27 января 2020

Я не уверен насчет вашей структуры данных SQLite Note, будь то список или нет, но обычно что-то вроде этого работает для меня:

using (StreamWriter sw = File.AppendText(@"C:\Users\MAFA\Desktop\newfolder\endscores.csv"))
{
    yourSQLiteNoteDataStruct
        .Select(i => $"{i.PersonId};{i.PersonName};{i.ScoreDate};")
        .ToList()
        .ForEach(s => sw.WriteLine(s));
}

Это, конечно, заблокирует ваш пользовательский интерфейс и сделает его не отвечает пока время записи файла. Поэтому вы можете сделать свой обработчик событий async и часть средства записи потоков включенными в задачу:

await Task.Run(() =>
{
    ...
});
...