将.CSV转换为SQL CE表格?

5
有没有一种快速将.csv或制表符分隔的.txt数据导入到SQL Compact Edition 3.5表中的方法?
我有大量的数据,手动输入不切实际。
我知道如果想要导入到基于服务器的SQL数据库中,可以使用BULK INSERT函数,但是这种方法在SQL CE中不起作用。
我使用visual studio 2010,并安装了SQL Server Management Studio。
任何帮助将不胜感激!

可能是从DataTable批量插入到SQLCE数据源的重复问题。 - Ken White
5个回答

5

2
也许更简单更好。自己编写的代码最容易扩展。如果需要,甚至可以动态构建表格,但可能并非必要。
var stuff = from l in File.ReadLines(filename)
            let x = l.Split(new [] {',', ' '}, StringSplitOptions.RemoveEmptyEntries)
                     .Skip(1)
                     .Select(s => int.Parse(s))
            select new
            {
                Sum = x.Sum(),
                Average = x.Average()
            };

参见:使用LINQ读取CSV文件


1
如果您有Microsoft Access,可以将.csv或分隔符.txt数据导入为新表,然后升级到SQL数据库。此外,您还可以创建链接表并复制粘贴数据(例如来自Microsoft Excel),这通常是高效且可靠的(将错误抛出到单独的表中供您查看)。

谢谢您的快速回复。我该如何将Access 2010表格转换为SQL CE? - Tony Wu

1

1

处理csv文件时,我首选的工具是PowerShell,因为它内置了一个import-csv命令。对于这种类型的任务来说,它是非常好用的。

以下是一个链接,其中开发人员导入了一个csv文件并将其转换为插入脚本。 http://allen-mack.blogspot.com/2008/02/powershell-convert-csv-to-sql-insert.html

要运行链接中的脚本(注意:PowerShell提供了制表符自动完成功能,因此您可以在输入文件路径时使用它来帮助您):

  1. 创建一个名为Import-File.ps1的文件,并将链接中脚本的内容复制到其中。
  2. 启动PowerShell
  3. 键入“set-executionpolicy remotesigned”(注意:这会稍微放宽系统的安全性;但默认设置不允许您运行任何脚本)
  4. 导航到包含脚本和导入文件的目录
  5. 键入“.\\import-file.ps1 .\\importfile.csv”
  6. 按回车键;您应该会在同一目录下找到一个插入SQL脚本(在我们的例子中是“importfile.sql”)
最后,由于您可以在PowerShell中实例化.NET对象,因此您可以更改脚本并执行许多操作,例如直接将数据插入到数据库中。

这在 SQL CE 4.0 上不起作用,因为 SSMS 使用的是 SQL CE 3.5,如果您尝试使用它打开 SQL CE 4.0 文件,它会崩溃。 - Thierry Savard Saucier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接