Лучший способ вставить более 200 строк в базу данных SQLite - PullRequest
0 голосов
/ 22 июня 2011

Я создаю приложение с базой данных. У меня есть одна таблица, в которой будет более 200 строк. (справочная таблица, используемая в приложении) Я создал класс для создания базы данных и его обновления.

Я создал строки внутри класса для создания необходимых таблиц, но добавив 200+ строк в класс, он получится очень большим

Есть ли лучший способ вставить эти строки. В настоящее время они находятся в файле SQL в приложении

Спасибо

Ответы [ 3 ]

0 голосов
/ 22 июня 2011

Вы также можете отправить предварительно заполненную базу данных SQLite в папку ресурсов, как описано в этом ответе SO:

Поставить приложение с базой данных

0 голосов
/ 22 июня 2011

Вы можете создать небольшое приложение .net для заполнения таблицы при необходимости. Вот пример в VB. Это может быть легко переведено в c #, прибегая к помощи конвертера VB в C #. Просто скопируйте и вставьте код в конвертер.

    Dim myConnection As SqlConnection
    Dim myCommand As SqlCommand
    Dim i as Integer 

    'Connect to database
    myConnection = New SqlConnection("server=localhost;uid=sa;pwd=;database=yourdb") 
    myConnection.Open()

    'Insert rows, you may be able to use a for loop to make inserting easier
    myCommand = New SqlCommand("INSERT INTO yourtable VALUES( 12, _
    'IT Manager')",100,300,myConnection)
    i=myCommand.ExecuteNonQuery()

    'Close the connection

    myConnection.Close()
0 голосов
/ 22 июня 2011

Вам следует рассмотреть возможность использования транзакции и, возможно, изменить PRAGMA синхронно с базой данных. Вставка 200+ строк будет длинной, использование транзакции сократит необходимое время:

sql.execSQL("BEGIN;");
//insert 1
//insert 2
// ...
sql.execSQL("END;");

Изменение PRAGMA синхронно на 0 или 1 также увеличит скорость вставки, но может вызвать некоторую ошибку (это удалит блокировку записи при вставке)

См. http://www.sqlite.org/pragma.html и http://www.sqlite.org/lang_transaction.html для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...