Вставка базы данных не работает на Android - PullRequest
0 голосов
/ 04 июля 2011

Привет, я делаю приложение для Android и у меня есть база данных. Я могу делать запросы, но вставки, кажется, не работают. У меня есть таблица с именем profile с полями «id», «name» и «original».

Это метод:

public void addProfile(String name)
{       
myDataBase.rawQuery("INSERT INTO profile(name, original) values('"+name+"', '0')", null);       
}

И что я делаю:

DataBaseHelper myDbHelper = new DataBaseHelper (активность);

    try {
        myDbHelper.createDataBase();
    } catch (IOException ioe) {
        throw new Error("Unable to create database");
    }

    try {
        myDbHelper.openDataBase();

    } catch (SQLException sqle) {
        throw sqle;
    }

    for(Profile p : profiles){
        myDbHelper.addProfile(p.getName());
        System.out.println("Commiting profile "+ p.getName());

В LogCat правильно отображается «Подтверждение теста профиля».

Я открываю базу данных с помощью:

    myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);

Я везде искал ошибку и, похоже, не могу ее найти. Это потому, что у меня есть «id» вместо «_id» на столе? Разве это не повлияет только на SELECT? В моих выборках я использую select id как _id, но при вставке я не знаю, как это сделать.

1 Ответ

4 голосов
/ 04 июля 2011

Запрещено использовать rawQuery для вставки данных.Вы должны использовать execSQL

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