2015-05-11 45 views
0

我有問題,我的SQLite在編譯:(?)INSERT INTO tabellirik(judul,lirikpupuh)VALUES

error table tabellirik has no column named judul (code 1): , while compiling: INSERT INTO tabellirik(judul,lirikpupuh) VALUES (?,?) 

我有同樣的錯誤,我有問題,自己的位置文件數據庫SQLite的,如果我調試應用程序,即時通訊使用Android Studio?

請幫我:)

public class DBHelper extends SQLiteOpenHelper { 

    private static final int DATABASE_VERSION = 1; 

    private static final String DATABASE_NAME = "Macepat"; 

    private static final String TABLE_MUPUH = "tabellirik"; 

    private static final String KEY_ID = "id"; 

    private static final String JUDUL = "judul"; 

    private static final String KEY_MUPUH = "lirikpupuh"; 

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

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String CREATE_LIRIK_TABLE = "CREATE TABLE " + TABLE_MUPUH + "(" 
      + KEY_ID + " INTEGER PRIMARY KEY," 
      + JUDUL + "TEXT," 
      + KEY_MUPUH + "TEXT)"; 
     db.execSQL(CREATE_LIRIK_TABLE); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS" + TABLE_MUPUH); 

     onCreate(db); 
    } 

    public int addLirik(Lirik lirik){ 
     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues values = new ContentValues(); 
     values.put(JUDUL, lirik.getJudul()); 
     values.put(KEY_MUPUH, lirik.getLirik()); 
     int id = (int) db.insert(TABLE_MUPUH,null,values); 
     db.close(); 
     return id; 
    } 

    public int editLirik(Lirik lirik, String position){ 
     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues values = new ContentValues(); 
     values.put(JUDUL, lirik.getJudul()); 
     values.put(KEY_MUPUH, lirik.getLirik()); 
     return db.update(TABLE_MUPUH, values, KEY_ID + " = ?", 
      new String[] {String.valueOf(position)}); 
    } 

    public boolean deleteLirik(long IDlirik){ 
     SQLiteDatabase db = this.getWritableDatabase(); 
     return db.delete(TABLE_MUPUH,KEY_ID + "= " + IDlirik, null)>0; 
    } 

    public Lirik getLirik(String id){ 
     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor cursor = db.query(TABLE_MUPUH, new String[] { KEY_ID 
    , JUDUL, KEY_MUPUH}, KEY_ID + "=?", 
      new String[] {String.valueOf(id)}, null, null, null); 

     if (cursor != null) 
      cursor.moveToFirst(); 

     Lirik lirik = new Lirik(cursor.getString(1), 
       cursor.getString(2)); 
     db.close(); 

     return lirik; 
    } 

    public String[] getAllLirik(){ 
     ArrayList<String> lirikList = new ArrayList<String>(); 
     String selectQuery = "SELECT * FROM " + TABLE_MUPUH; 
     try { 
      SQLiteDatabase db = this.getReadableDatabase(); 
      Cursor cursor = db.rawQuery(selectQuery,null); 
      if (cursor.moveToFirst()){ 
       do { 
        String lirik = cursor.getString(1) +" , "+ cursor.getString(2) + " , " + cursor.getString(3); 
        lirikList.add(lirik); 
       }while (cursor.moveToNext()); 
      } 
      String [] liriks = new String[lirikList.size()]; 
      db.close(); 
      return (lirikList.toArray(liriks)); 
     } 
     catch (Exception e){ 
      Log.d("Error", e.getMessage()); 
      return null; 
     } 
    } 
} 

感謝

回答

0

不創建你的表,因爲你已經錯過了create聲明瞭一些空間,而insert不能對一個不存在的表被編譯:

String CREATE_LIRIK_TABLE = "CREATE TABLE " + TABLE_MUPUH + "(" 
    + KEY_ID + " INTEGER PRIMARY KEY," 
    + JUDUL + " TEXT," 
    + KEY_MUPUH + " TEXT)"; 

而且,你已經錯過了drop聲明瞭一些空間:

db.execSQL("DROP TABLE IF EXISTS " + TABLE_MUPUH); 
相關問題