2

作成中のアプリの Sqlite データベースに情報を入力する際に​​問題が発生しています。以前はカーソルの助けを借りていました。私はMySQLに慣れていますが、明らかにそれほど「慣れていない」わけではありません。

ファイルからデータベースに追加しようとしています。以前はこれが機能していましたが、カーソルで追加されます。次に、新しい情報をファイルに追加し、アプリが新しい情報のみをデータベースに追加できるようにするには、INSERT OR IGNORE を使用する必要があると言われました。

これは正しい構文ですか? 現在、何らかの理由で情報が挿入されていません...

ourDatabase.rawQuery("INSERT OR IGNORE INTO " + DATABASE_TABLE + " ("+KEY_CLASS+",
 " + KEY_QUESTION+ ") VALUES ('" + qclass + "', '" + question + "');", null);

これは私のデータベースです:

"CREATE TABLE " + DATABASE_TABLE + " (" + 
                    KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
                    KEY_CLASS + " TEXT NOT NULL, " +
                    KEY_QUESTION + " TEXT NOT NULL UNIQUE);

事前に助けてくれてありがとう!

4

1 に答える 1

6

あなたのクエリは正しいようですが、とにかく以下のものを試してください

ContentValues insertValues = new ContentValues();
insertValues.put(KEY_CLASS, qclass);
insertValues.put(KEY_QUESTION, question);   
yourDbName.insertWithOnConflict(DATABASE_TABLE, null, insertValues, SQLiteDatabase.CONFLICT_IGNORE);  

KEY_QUESTION + " TEXT NOT NULL UNIQUE);";
于 2013-03-30T06:58:59.930 に答える