我想从SQLite传输数据到SQL Server。目标和目标表的架构是一样的:从SQLite导入数据到SQL Server与SqlBulkCopy类
SQL服务器:
CREATE TABLE [dbo].[Shop] (
[ShopID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](128) NOT NULL,
[Url] [nvarchar](128) NOT NULL,
PRIMARY KEY CLUSTERED
(
[ShopID] ASC
))
和SQLite:
CREATE TABLE "Shop" (
"ShopID" INTEGER PRIMARY KEY NOT NULL,
"Name" VARCHAR NOT NULL,
"Url" VARCHAR NOT NULL);
我写的代码如下(有System.Data.SQLite) :
using (var conn = new SQLiteConnection(@"Data Source=Data.sqlite;FailIfMissing=True"))
{
conn.Open();
var cmd = new SQLiteCommand("SELECT * FROM Shop", conn);
var reader = cmd.ExecuteReader();
using (var bulkCopy = new SqlBulkCopy("Data Source=.;Initial Catalog=Test;Integrated Security=True"))
{
bulkCopy.DestinationTableName = "Shop";
bulkCopy.ColumnMappings.Add("ShopID", "ShopID");
bulkCopy.ColumnMappings.Add("Name", "Name");
bulkCopy.ColumnMappings.Add("Url", "Url");
bulkCopy.WriteToServer(reader);
}
}
数据已被读者加载(我检查过)。但是,在WriteToServer方法上引发InvalidOperationException:给定的ColumnMapping不匹配源或目标中的任何列。
对我有何建议或建议?
我错了或这ColumnMappings.Add是没有必要?这两个表格是相同的... – 2009-08-26 10:08:52