Лучший способ вставить данные в Sql Server CE
Я работаю над C# Compact Framework 4.0 для моего продукта.
У меня есть сервер и мобильный телефон, и я должен синхронизировать все данные с сервера на моем мобильном устройстве.
Обычно около 6000 записей будут вставлены в мое мобильное устройство на одной таблице.
Теперь я использую таблицу direct с указанием имени таблицы.
Это займет около 55 секунд для 6000 записей.
Есть ли более быстрый способ вставить??
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);
}
2 ответа
Удалить " | ResultSetOptions.Scrollable"
И переместить строку:
SqlCeUpdatableRecord recItem = rsItem.CreateRecord();
Выше цикла пока.
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);
}
Используя эту библиотеку вы можете использовать SqlBulkCopy
( Класс SQLBulkCopy (веб-сайт Microsoft)) с базой данных SQL Server CE.