将DataTable作为文件保存到数据库

时间:2018-02-20 18:40:36

标签: c# sql file datatable

我有一个DataTable dt,我想将其作为CSV文件发送给用户。现有的电子邮件工作流程涉及将文件添加到attachments表,然后电子邮件功能将从那里提取文件。现在,我绕过了电子邮件部分,直接使用ID和一个适用于表中所有其他文件的函数(包括csv和xls)下载文件。问题是,我尝试将DataTable作为文件添加到此表中的所有内容都将作为随机Unicode字符下载。

我尝试过的事情:

  • 将DataTable转换为CSV字符串,并使用System.Text.Encoding.ASCII.GetBytes(attachmentCSV)制作byte[]
  • 按照here
  • 的说明创建一个MemoryStream
  • 前2的组合

我没有通过我的搜索找到任何有用的东西,所以我不知道接下来要尝试什么。如何将DataTable作为文件(csv,xls,Excel将打开的任何电子表格格式)保存到SQL表中?理想情况下,我想要一种避免首先将文件保存到磁盘的方法。

1 个答案:

答案 0 :(得分:1)

这个问题在于用于打开文件的软件LibreOffice。字符集设置为UTF-16而不是UTF-8。更改设置似乎可以解决问题。