Это приложение C # WPF с SQL CE в качестве источника данных:
У меня есть DataTable (отображается как DataGrid) и источник данных SQL CE.Я заполняю свой DataTable из SQL CE, используя DataAdapter, DataSet и DataTable.Затем привяжите мою DataGrid к DataTable.
Я могу добавить строки (> 10 000) строк в мой DataTable и, возможно, отредактировать данные, прежде чем распространять все мои изменения все вместе на мой Sql CE DataSource.
Мой текущий подход - DROP TABLE, CREATE TABLE и повторная вставка строк методом грубой силы в SQLCE.SQL CE не имеет массовой вставки, и я не хочу использовать третью библиотеку или DLL.Производительность медленная ...
Я ищу или более быстрый способ "массовой вставки" без необходимости отбрасывать, создавать и вставлять строки один за другим.
Я прочиталкое-что о SqlCeResultSet, но я не могу найти никакой документации и удивляюсь, имеет ли это какое-то отношение к тому, что я пытаюсь сделать.
[EDIT] После ответа и проверки этого:http://ruudvanderlinden.com/2010/10/13/bulk-insert-into-sql-ce-in-c/
Я пытался использовать функцию, но, похоже, она не работала.Ниже мой код.Footable - это моя таблица базы данных, и у меня есть два столбца - «id» и «FooName».
Hashtable idHash = new Hashtable();
Hashtable fooNameHash = new Hashtable();
foreach(DataRow row in dt.Rows)
{
idHash.Add("id",row["id"]);
fooNameHash.Add("FooName",row["FooName"]);
}
List<Hashtable> colHashList = new List<Hashtable>();
colHashList.Add(idHash);
colHashList.Add(fooNameHash);
BulkInsertDatabase(colHashList, "FooTable");
Это не сработало, но я не вижу никаких проблем в приведенном выше коде, поэтому надеюсь, что кто-то может указатьэто из ..
[РЕДАКТИРОВАТЬ - 2-й] [ОТВЕТ] Наконец, я получаю код для работы (хотя и сомнительно с производительностью):
List<Hashtable> colHashList = new List<Hashtable>();
Hashtable[] idHash = new Hashtable[dt.Rows.Count];
Hashtable[] fooNameHash = new Hashtable[dt.Rows.Count];
int i=0;
foreach(DataRow row in dt.Rows)
{
idHash[i] = new Hashtable();
idHash[i].Add("id", row["id"]);
colHashList.Add(idHash[i]);
fooNameHash[i] = new Hashtable();
fooNameHash[i].Add("FooName", row["FooName"]);
colHashList.Add(fooNameHash[i]);
i++;
}
BulkInsertDatabase(colHashList, "FooTable");