0

我一直在为我的产品开发C# Compact Framework 4.0

我有一台服务器和一部手机,我必须将服务器上的所有数据同步到我的移动设备。

通常大约 6000 个条目将被插入到我的移动设备中的单个表中。

现在我直接使用带有指定表的索引名称的表。

6000 个条目大约需要 55 秒。

有没有更快的插入方式??

SqlCeCommand cmdItem = conn.CreateCommand();
SqlCeResultSet rsItem;
cmdItem.CommandText = "item_info";
cmdItem.IndexName = "PK_item_info";
cmdItem.CommandType = CommandType.TableDirect;
rsItem = cmdItem.ExecuteResultSet(ResultSetOptions.Updatable | ResultSetOptions.Scrollable);
while(reader.read()){

    SqlCeUpdatableRecord recItem = rsItem.CreateRecord();
    recItem.SetString(1, cmdItem.SerialNo);
    recItem.SetInt32(10, 0);
    rsItem.Insert(recItem);  

}
4

2 回答 2

1

删除“|ResultSetOptions.Scrollable”

并移动该行:

SqlCeUpdatableRecord recItem = rsItem.CreateRecord();

在while循环之上。

var cmdItem = conn.CreateCommand();
cmdItem.CommandText = "item_info";
cmdItem.CommandType = CommandType.TableDirect;
var rsItem = cmdItem.ExecuteResultSet(ResultSetOptions.Updatable);
var recItem = rsItem.CreateRecord();
while(reader.read())
{        
    recItem.SetString(1, cmdItem.SerialNo);
    recItem.SetInt32(10, 0);
    rsItem.Insert(recItem);
}
于 2015-12-28T09:30:20.600 回答
0

使用此库,您可以将SqlBulkCopySQLBulkCopy 类(Microsoft 网站))与您的 SQL Server CE 数据库一起使用。

支持 SQL Server CE 的库

于 2015-12-28T08:53:29.767 回答