トピックが暗示しているように、sqliteで新しいテーブルを作成する際にいくつか問題があります。コードで何をしても、データベースに新しいテーブルを作成できません。データベースを見ると、android_metadata tbだけがあり、他には何もありません。新しいコードを作成するためのコードは次のとおりです。
...
this.createTable(R.string.nametable, "_id INT PRIMARY KEY, " + "parentID INT, " + "name TEXT");
...
public void createTable(int id, String sql) {
String table = this.getStringById(id);
String _sql = "CREATE TABLE " + table + "(" + sql + ")";
Log.d("Controller.createTable", _sql);
this.mCurrentConnection.rawQuery(_sql, null);
try {
Cursor c = this.Select(id, "*", null);
c.close();
Log.d("Controller.createTable", "create finished");
} catch (Exception e) {
Log.d("Controller.createTable", "can't create table: " + table);
}
}
アプリのコンストラクターでデータベースを開くか作成します
if(this.mCurrentConnection == null || !this.mCurrentConnection.isOpen()) {
this.mCurrentConnection = this.mContext.openOrCreateDatabase(this.mDB, Context.MODE_PRIVATE , null);
}
私はすべてを試しました:db / tbの名前を変更し、アプリを再インストールし、「;」を配置します コマンドの最後にない場合は、新しいクリーンなVMで試してみてください。私の問題を解決する有用な既存の投稿/回答は見つかりませんでした。_sqlステートメントを実行した場合
CREATE TABLE name_table(_id INT PRIMARY KEY, parentID INT, name TEXT)
phpmyadmin(MySQL)では、すべてが正常に機能します。
あなたが私を助けてくれたら嬉しいです。
アレックスよろしく
編集:(以下のコメントに対する回答)
@VikramBodicherla:それは問題です。createステートメント自体は例外を引き起こしませんでした。select(check)ステートメントは
04-30 07:34:14.834:E / Database(305):parentid = -1 name =blablaの挿入中にエラーが発生しました04-3007:34:14.834:E / Database(305):android.database.sqlite.SQLiteException:
そのようなテーブルはありません:name_table:、コンパイル中:INSERT INTO name_table(parentid、name)VALUES(?、?); 04-30 07:34:14.834:E / Database(305):android.database.sqlite.SQLiteProgram.native_compile(ネイティブメソッド)04-30 07:34:14.834:E / Database(305):android.database .sqlite.SQLiteProgram.compile(SQLiteProgram.java:110)04-30 07:34:14.834:E / Database(305):android.database.sqlite.SQLiteProgram。(SQLiteProgram.java:59)04-30 07: 34:14.834:E / Database(305):android.database.sqlite.SQLiteStatement。(SQLiteStatement.java:41)04-30 07:34:14.834:E / Database(305):android.database.sqlite SQLiteDatabase.compileStatement(SQLiteDatabase.java:1027)04-30 07:34:14.834:E / Database(305):android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1413)04-30 07:34: 14.834:E / Database(305):androidで。