首页 > 解决方案 > 如何通过按钮单击将数据导出到 linq c# 中的 .csv 文件

问题描述

我正在以一种简单的方式将表(分数)的数据从数据库导出到 .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 ?! 

        };

    }

标签: c#wpfsqlitelinqdbcontext

解决方案


我不确定你的 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));
}

这当然会锁定您的 UI 并使其在写入文件时暂时无响应。因此,您可以将事件处理程序async和流编写器部分包装在任务中:

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

推荐阅读