Я новичок в android и, возможно, его глупый вопрос, но я не получаю его. Смотрите, я разрабатываю игру, в которой мы даем оценки некоторым людям. Поэтому я хочу сохранить имена людей в базе данных во время установки, а затем их оценки будут установлены на 0, которые будут обновлены в соответствии с тем, что выбирают пользователи. Здесь я не могу понять, как я должен вводить данные, так как это будет около 100 имен и их оценки. Использование инструкции INSERT INTO() сделает ее равной 100 операторам. Итак, есть ли какой-нибудь короткий метод, как мы можем это сделать через строки или что-то в этом роде. Впрочем, догадываться. Любая помощь будет оценена по достоинству.добавить большой объем данных в SQLite android
ответ
Я рекомендую вам использовать транзакцию. Вы можете архивировать это, указав, что хотите использовать транзакцию с beginTransaction()
, сделать все вставки на makeAllInserts()
с помощью цикла, и если все будет работать, тогда позвоните setTransactionSuccessful()
, чтобы сделать это в пакетной операции. Если что-то пойдет не так, в секции finally вы вызовете endTransaction() без установки успеха, это приведет к откату.
db.beginTransaction();
try {
makeAllInserts();
db.setTransactionSuccessful();
}catch {
//Error in between database transaction
}finally {
db.endTransaction();
}
Для функции makeAllInserts, что-то подобное может работать:
public void makeAllInserts() {
for(int i = 0; i < myData.size(); i++) {
myDataBase = openDatabase();
ContentValues values = new ContentValues();
values.put("name", myData.get(i).getName());
values.put("score", myData.get(i).getScore());
myDataBase.insert("MYTABLE", nullColumnHack, values);
}
}
Если вы хотите знать о nullColumnHack здесь у вас есть хорошая ссылка ->https://stackoverflow.com/a/2663620/709671
Надеется, что это помогает.
Вы не записываете имена или баллы в свои SQL-выражения. Вместо этого вы используете параметры.
var command = new SQLiteCommand()
command.CommandText = "INSERT INTO Scores (name, score) VALUES(@name, @score)";
command.CommandType = CommandType.Text;
foreach (var item in data)
{
command.Parameters.Add(new SQLiteParameter("@name", item.Name));
command.Parameters.Add(new SQLiteParameter("@score", item.Score));
command.ExecuteNonQuery();
}
, а затем просто пропустите все имена и оценки.
Thanx для ответа. Я точно не понимаю, как это будет работать, поскольку я не знаю понятия параметров. Можете ли вы предоставить ссылку на какой-либо документ для примера кода или что-то в этом роде. – Decoder
Сделайте поиск по Google для «параметров привязки SQLite». В приведенном выше коде используются System.Data.SQLite и C#; то, как вы это делаете, несколько отличается от C. –
- 1. большой объем данных в android sqlite
- 2. Вставить большой объем данных в android SQLite Database
- 3. Загрузить большой объем данных в DB - Android
- 4. Как добавить очень большой объем данных в Android-приложение?
- 5. Как обрабатывать большой объем данных в android
- 6. Большой объем передачи данных
- 7. Показан большой объем данных
- 8. Экспортировать большой объем данных?
- 9. Большой объем запроса данных
- 10. большой объем данных в таблицу
- 11. Как добавить большой объем данных в базу данных sql?
- 12. Как вставить большой объем данных в базу данных sqlite в Android
- 13. cPickle очень большой объем данных
- 14. Как хранить большой объем данных
- 15. FIELDDATA Слишком большой объем данных
- 16. Android - онлайн-синхронизация большой базы данных SQLite
- 17. Обработка большой базы данных sqlite на Android
- 18. вставить большой объем данных в cassandra эффективно
- 19. Обмен большой объем данных в памяти?
- 20. Как обрабатывать большой объем данных в gridview?
- 21. Как обрабатывать большой объем данных в asp.net
- 22. Как хранить большой объем данных в javascript
- 23. Вставить большой объем данных в mysql
- 24. Чрезвычайно большой объем данных в jos_session
- 25. нагрузки большой объем данных JSON в PHP
- 26. Как отобразить большой объем данных в gridview
- 27. Как записать в proc большой объем данных
- 28. Извлечь большой объем данных в laravel 4.2
- 29. Как загрузить большой объем данных в CoreData
- 30. Предварительно хранить большой объем данных в приложении
Спасибо человеку. Как эта идея. Это сработало для меня. Но теперь у меня другая проблема. Не могли бы вы проверить: http://stackoverflow.com/questions/27259658/duplicate-data-issue-android-sqlite – Decoder
Я рад слышать, что @Decoder ответил на ваш другой вопрос. Взглянуть :) – axierjhtjz