我有数据集与db连接。数据集和TableAdapterManager是由VS根据连接自动创建的。将数据集数据保存到其他数据库
我可以这样做this.tableAdapterManager.UpdateAll(testcheckerDataSet);
它的正常工作。
接下来,我(使用3D党数据库编辑器)已复制.db文件为“blank_testing.db”(第2分贝),然后从文件中删除所有数据。所以它只是没有数据的方案。
现在我(在代码中)填充数据集与来自“testchecker.db”(第1分贝)的数据,使用元素更改数据,并希望将数据保存到第2分贝然后到第1分贝。我尝试使每个适配器的连接字符串变为chaging。
string originalPath = tableAdapterManager.Connection.ConnectionString;
string ns = tableAdapterManager.Connection.ConnectionString.Replace("testchecker.db", "blank_testing.db");
tableAdapterManager.Connection.ConnectionString = ns;
group_testingTableAdapter.Connection.ConnectionString = ns;
groupsTableAdapter.Connection.ConnectionString = ns;
testingTableAdapter.Connection.ConnectionString = ns;
this.tableAdapterManager.UpdateAll((testcheckerDataSet) testcheckerDataSet.Copy()); // here error
tableAdapterManager.Connection.ConnectionString = originalPath;
group_testingTableAdapter.Connection.ConnectionString = originalPath;
groupsTableAdapter.Connection.ConnectionString = originalPath;
testingTableAdapter.Connection.ConnectionString = originalPath;
this.tableAdapterManager.UpdateAll(testcheckerDataSet);
但我得到错误“并发违反updatecommand影响0从1”。我认为这是因为第二分贝根本没有数据。
所以有人能告诉我我该怎么当前的数据保存到另一个数据库文件,然后再以第一(原)分贝?
谢谢。这里
根据需要来让我感动的数据量,我会尝试使用SqlBulkCopy的这一点。阅读 - http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx – dougajmcdonald
适配器并不昂贵。只需创建新的实例。只需将记录复制到新表格中。 –