Невозможно открыть файл базы данных sql lite android - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь создать базу данных и вставить в нее некоторые данные, но, похоже, это не работает.Кто-нибудь может сказать мне, что не так в моей реализации?Вот мой код для базы данных.Спасибо.

    SQLiteDatabase db = null;
 db.openOrCreateDatabase("order", null);
         db.execSQL("CREATE TABLE IF NOT EXISTS order ( id INTEGER PRIMARY KEY     AUTOINCREMENT, Name VARCHAR, Price INTEGER)");
          db.execSQL("INSERT INTO order (Name, Price) VALUES ('Paneer Tikka', '100')");

Ответы [ 4 ]

0 голосов
/ 30 марта 2014

Невероятно, но Sqlite имеет гораздо лучшую производительность "в процессе" на вставках без транзакций.Я особенно часто использую процессы транзакций, или в какой-то момент происходит случайный сбой.

0 голосов
/ 02 марта 2012

Есть действительно хороший учебник, предоставленный Google.Он расскажет вам, как сделать основы с базой данных SQLite.

http://developer.android.com/resources/tutorials/notepad/index.html

Я бы предложил пройти через это.

В этом руководстве предлагается использовать SQLHelper.внутренний класс примерно так:

закрытый статический класс DatabaseHelper extends SQLiteOpenHelper {

DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    try {
    db.execSQL(DATABASE_CREATE_CELEBS);
    db.execSQL(DATABASE_CREATE_CHECKINS);
    Log.i("dbCreate", "must have worked");
    } catch (Exception e) {
        Log.i("dbCreate", e.toString());
    }
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
            + newVersion + ", which will destroy all old data");
    db.execSQL("DROP TABLE IF EXISTS celebs");
    db.execSQL("DROP TABLE IF EXISTS checkins");
    onCreate(db);
}

}

Затем, чтобы получить новую базу данных, вы можете вызвать

mDbHelper = new DatabaseHelper(mCtx);
mDb = mDbHelper.getWritableDatabase();
0 голосов
/ 02 марта 2012

Вам необходимо узнать о SQLiteOpenHelper. Попросите у Google несколько учебных пособий.

0 голосов
/ 02 марта 2012

SQLiteDatabase db = null;

db.openOrCreateDatabase .. приведет к исключению NullPointerException.Вам необходимо назначить экземпляр SQLLiteDatabase для db, а затем вызвать openOrCreateDatabase для db.

Другая проблема состоит в том, что 100 - целое число, не нужно заключать в одинарные кавычки.

 db.execSQL("INSERT INTO order (Name, Price) VALUES ('Paneer Tikka', 100)");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...