【问题标题】:saving/reading csv file from/to database in C#在 C# 中从/向数据库保存/读取 csv 文件
【发布时间】:2012-09-13 01:29:39
【问题描述】:

是否可以使用 C# 将 csv 文件保存到 SQL Server 数据库表中?

是否需要将 csv 文件转换为二进制格式才能执行此操作?

有没有其他方法,比如保存为文本格式(csv基本上是一个txt文件)?

如果您能提供一些示例代码,我将不胜感激。

【问题讨论】:

  • CSV 文件可以直接导入到 SQL Server 上,无需使用 C#。 See This Link
  • 您能否澄清一下您是否明确不想将 CSV 分成多个数据字段?根据您的情况,这样做可能比在数据库中保留整个文件的副本更好。但另一方面,如果您只需要文件的副本,那么数据库可能不是最适合它的地方 - 相反,也许您的数据库可能只包含一个文件路径,指向存储在某个文件系统上的文件的位置.
  • 我不想破坏 csv 文件。我想将整个文件保存在一条记录中,因为可能有数百个文件来自不同的用户。
  • 您是否需要能够查询 CSV 中的值,或者只是根据从表中选择的其他字段“按需”提取 CSV?如果是这样,那么您可以在导入之前对其进行编码或压缩或其他任何方式。但是,如果您不对整个文件或其内容执行类似 DB 的操作,那么 DB 是否是文件本身的最佳位置,而不仅仅是对文件的引用?

标签: c# asp.net sql-server


【解决方案1】:

CSV 文件只是文本。您可以创建一个包含 nvarchar(max) 列的表并将 CSV 文件存储在其中。

【讨论】:

  • 但我想将整个文件保存在一条记录中。你能提供一些代码吗?
  • 我不明白。您可以将整个 CSV 文件插入到类型为 nvarchar(max) 的单个列中。
  • @Henry,也许这个ADO.NET C# tutorial 会有所帮助。请参阅“插入数据”。
  • @Henry,insert 声明示例:insert into CSV_TABLE (ID, CSV_TEXT) values (12345, "csv,row,one\ncsv,row,two\ncsv,row,three");
  • @Henry,与insert 语句匹配的表:create table CSV_TABLE (ID numeric, CSV_TEXT nvarchar(MAX));
【解决方案2】:

您还有另一个有用的 C# 示例,用于使用 SQL Server 导入和导出 CSV 文件。以下是链接:

http://www.codeproject.com/Articles/30705/C-CSV-Import-Export

【讨论】:

    【解决方案3】:

    您可以使用我相信的数据导入向导并将其指向 csv 文件。这应该会创建一个与您导入的 csv 结构相匹配的表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 2014-01-07
      • 2019-09-17
      相关资源
      最近更新 更多