Лучший способ вставить данные в 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.

Библиотека, которая поддерживает SQL Server CE

Другие вопросы по тегам