Android SQLite INSERTエラー

私が理解できないエラーが発生しています。あなたが助けることを願っています!

私はプライマリキーである一意のIDを持つグループ名のテーブルを作成しています。

public class GroupDatabaseAdapter {

public static final String KEY_ID = "id";
public static final String KEY_NAME = "name";
private static final String DATABASE_TABLE = "groep";
private Context context;
private SQLiteDatabase database;
private GroupDatabaseHandler dbHandler;

public GroupDatabaseAdapter(Context context) {
    this.context = context;
}

public GroupDatabaseAdapter open() throws SQLException {
    dbHandler = new GroupDatabaseHandler(context);
    database = dbHandler.getWritableDatabase();
    return this;
}

public void close() {
    dbHandler.close();
}

/**
 * Create a new group If the group is successfully created return the new
 * rowId for that note, otherwise return a -1 to indicate failure.
 */
public long createGroup(long id, String name) 
{
    ContentValues values = createContentValues(id, name);

    return database.insert(DATABASE_TABLE, null, values);
}
/**
 * Return a Cursor over the list of all groups in the database
 * 
 * @return Cursor over all groups
 */
public Cursor fetchAllGroups() {
    return database.query(DATABASE_TABLE, new String[] { KEY_ID,
            KEY_NAME }, null, null, null,
            null, null);
}

private ContentValues createContentValues(Long id, String name) {
    ContentValues values = new ContentValues();
    values.put(KEY_ID, id);
    values.put(KEY_NAME, name);
    return values;
}
}



public class GroupDatabaseHandler extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "groups.db";

private static final int DATABASE_VERSION = 1;

// Database creation sql statement
private static final String DATABASE_CREATE = "CREATE TABLE lesson (id INTEGER PRIMARY KEY NOT NULL , name TEXT NOT NULL);";

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

@Override
public void onCreate(SQLiteDatabase database) 
{
    database.execSQL(DATABASE_CREATE);
}

}

私はこれらのクラスを次のコードで別のクラスから呼びます:

GroupDatabaseAdapter groupDb = new GroupDatabaseAdapter(this).open();
long id = groupDb.createGroup(641, "3 bac group 2");
System.out.println(id);
id = groupDb.createGroup(642, "3 bac group 3");
System.out.println(id);

私が得るエラーは

11-24 23:08:07.036: I/Database(11436): sqlite returned: error code = 1, msg = near "group": syntax error
11-24 23:08:07.075: E/Database(11436): Error inserting id=1 name=3 bac group 2
11-24 23:08:07.075: E/Database(11436): android.database.sqlite.SQLiteException: near "group": syntax error: , while compiling: INSERT INTO group(id, name) VALUES(?, ?);

同じプログラムで、私は仕事をする別のテーブルを作った。そのテーブルとこれとの唯一の違いは、主キーです。もう1つのテーブルでは、自動増分されます。ここでは、ROWIDをグループのIDにします。 誰かが私の間違いを見てほしいと思っています。

私はグループをgroep(グループのためのオランダ)に変更しましたが、今はこれらのエラーが発生します:

11-25 00:09:10.812: I/Database(457): sqlite returned: error code = 1, msg = no such table: groep
11-25 00:09:11.082: E/Database(457): Error inserting _id=1 name=3 bac group 2
11-25 00:09:11.082: E/Database(457): android.database.sqlite.SQLiteException: no such table: groep: , while compiling: INSERT INTO groep(_id, name) VALUES(?, ?);

乾杯! キャット

2
データベーステーブルの主キーについては、この標準に依存するAndroid関数の一部として常に識別子 "_id"を使用する必要があることをお伝えします。あなたの質問では、あなたはいつも "id as _id"と言うことができますが、まだ...
追加された 著者 hovanessyan,

2 答え

ちょうど丁度:データベーステーブルの名前を「グループ」以外のもの(グループなど)に変更してみてください。私はかなり "グループ"はSQLの予約語であると確信しています。

5
追加された
これは、 onCreate(SQLiteDatabaseデータベース)が実行されていないためです。アプリケーション(設定の下で電話/エミュレータ内)に移動し、アプリをアンインストールします。これにより、以前のバージョンのデータベースが削除されます。
追加された 著者 dmon,
私はコードを変更しましたが、別のエラーが出ます。私は私の質問を編集しました。
追加された 著者 Kat,
私はアンドロイドエミュレータでそれを実行しています。私はすでにプログラムやデータをリセットしなければならないと思っていました。しかし、私は方法を見つけることができません。私はデータベースファイルを削除しようとしましたが、まだ動作していません。
追加された 著者 Kat,

レッスンと呼ばれるテーブルを作成し、groepというテーブルに挿入しました。

0
追加された
ああ、それはとても愚かです!自分のコードから貼り付けをコピーします。ありがとう!それは今働いている!
追加された 著者 Kat,