将Excel导入到SQL Server CE

我有一个excel格式的表(2007年,但我可以保存下面的任何东西,自然),我有一个SQL Server精简版3.5 SP1数据库表与相应的列。 我只是想用来自Excel文件的数据填充SQLCE表。 数据只包含string和整数。

我试过这个实用程序无济于事,我也试过这个SQL脚本,但它不会工作,因为BULK INSERT在SQL Server CE中不受支持。 我也发现这个微软的教程,但我基本上无能为力,提到SQL,提供者等…

谢谢 !

编辑:我想出了下面的代码(通过这个职位 )

  var fileName = string.Format("{0}\\DataValues.xls", Directory.GetCurrentDirectory()); var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName); var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString); var ds = new DataSet(); adapter.Fill(ds, "anyNameHere"); DataTable dataTable = ds.Tables["anyNameHere"]; foreach (DataRow row in dataTable.Rows) _entities.MyObjectSet.AddObject(new MyObject() { Foo= (string)row[1], Bar= Convert.ToInt32(row[2]), }); _entities.SaveChanges(); 

但是,SaveChanges()与“服务器生成的密钥和服务器生成的值不受SQL Server Compact支持”崩溃。 我尝试了将所有Idtypes更改为GUID(= uniqueidentifier)的解决方法 ,但仍然收到消息

编辑2:我将StoreGeneratedPattern属性更改为“无”,现在它工作。 一个有趣的事情是, .SDF文件被复制到运行时目录,并且是被更改的副本 ,所以你不会看到项目中链接的.SDF的更改 – 你必须复制它手动

我的问题仍然存在 – 有一个SQL Server CE等效于以下?

 BULK INSERT YourDestinationTable FROM 'D:\YourFile.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' ) GO 

或者甚至更好 – 像微软的SQL Server导入和导出向导,可以导出到SQL Server CE?

我会避免使用EF(至less为此)。

你还没有发布你的数据库模式,但看看这个和这个 。

尽pipeEF通常支持它,但CE不支持 ,因此您需要将其取消标记为服务器分配,并在创build对象时将其分配。