0

SqLite データベース プログラムを作成しましたが、毎回以下のエラーが表示されます

そのようなテーブルは見つかりませんでした

これがエラーを表示する理由を教えてください。

public static final String TOWN_ID="_id";
public static final String TOWN_NAME="name";
public static final String DISTT_ID="disttidd";
private static final String TAG="DbaAdapter";
private static final String DATABASE_NAME="mydb";
private static final String DATABASE_TABLE="tableetown";
private static final int DATABASE_VERSION=2;
private static final  String DATABASE_CREATE="create table "+DATABASE_TABLE+"("+TOWN_ID+" int primary key ,"+TOWN_NAME+" text not null,"+DISTT_ID+" text not null)";
private final Context context;
private DatabaseHelper DBhelper;
private static SQLiteDatabase db;

public tableTown(Context ctx){
    this.context=ctx;
    DBhelper=new DatabaseHelper(context);

}
/* db=DBhelper.getWritableDatabase();
      return this;
 * 
 */
private static class DatabaseHelper extends SQLiteOpenHelper{
    DatabaseHelper(Context context){
        super(context,DATABASE_NAME,null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL(DATABASE_CREATE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        Log.w(TAG,"Upgrading database from version " + oldVersion +" to "+ newVersion+", which will destroy all old data");
       db.execSQL("DROP TABLE IF EXISTS tableTown");
       onCreate(db);
    }
}
public tableTown open() throws SQLException {
    db=DBhelper.getWritableDatabase();
    return this;

    // TODO Auto-generated method stub

}
public Cursor fetchAllDistt() {
    // TODO Auto-generated method stub
    Cursor mCursor = db.query(DATABASE_TABLE, new String[] {TOWN_ID,TOWN_NAME,DISTT_ID}, null, null, null, null, null);

      if (mCursor != null) {
       mCursor.moveToFirst();
      }
      return mCursor;
}
public void close() {
    // TODO Auto-generated method stub
    DBhelper.close();
}

}
4

4 に答える 4

0

私はそのような場合にSQLiteManagerを使用しています。

onCreate にブレークポイントを置き、その行が実行されることを確認します。次に、DDMS ビューに切り替え、プラグインを使用して何が問題なのかを調べます。

これが役に立てば幸いです、ヤロン

于 2013-04-12T09:01:40.283 に答える
0

on create 内に次のように記述します。

String DATABASE_CREATE = "CREATE TABLE " + DATABASE_TABLE + "("
            + TOWN_ID + " INTEGER PRIMARY KEY," + TOWN_NAME + " TEXT NOT NULL,"
            + DISTT_ID + " TEXT NOT NULL" + " )";
    db.execSQL(DATABASE_CREATE);
于 2013-04-12T08:30:32.183 に答える
-1

これを試して:

String DATABASE_CREATE="create table "+DATABASE_TABLE+"("+TOWN_ID+" integer primary key ,"+TOWN_NAME+" text not null,"+DISTT_ID+" text not null);";

置く ";" DATABASE_CREATE 文字列の最後まで。

これを探します:

private static final String DATABASE_TABLE="tableetown";

この:

db.execSQL("DROP TABLE IF EXISTS tableTown");

テーブル名が違う!

于 2013-04-12T08:14:48.597 に答える