c# - 如何通过按钮单击将数据导出到 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 ?!
};
}
解决方案
我不确定你的 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(() =>
{
...
});
推荐阅读
- javascript - 确定哪些检查失败
- kubernetes - 从 OOMKilled pod 重叠 kubelet 的 container_memory_rss 指标
- azure - Azure 数据工厂:将管道从一个数据工厂迁移到另一个数据工厂
- java - 如何通过使用对 InOrder 的调用来简化/更具可读性(下面的代码)
- php - PHP树依赖列表仅适用于某些孩子
- java - 文字游戏导入TXT文件
- javascript - 使用 css 样式打印 div
- ruby-on-rails-5 - 在 sidekiq 上查找错误的根源
- node.js - router.post('/', controller) vs router.route('/').get(controller)
- node.js - Nodejs,Mongoose 需要优化查询以获得更快的结果,同时查询处于循环状态