我一直在为我的产品开发 C#Compact Framework 4.0 。
我有一台服务器和一部手机,我必须将服务器上的所有数据同步到我的移动设备。
通常在一张桌子上将大约6000个条目插入我的移动设备。
现在我使用table direct和指定表的索引名称。
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);
}
答案 0 :(得分: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);
}
答案 1 :(得分:0)
使用此库,您可以将SqlBulkCopy
(SQLBulkCopy Class (Microsoft website))与SQL Server CE数据库一起使用。