2014-04-12 2 views
0

SQLite는 (1) 근처 ")": 구문 오류의 SQLiteDatabase 오류 "SQLite는 (1) 근처") "구문 오류"

나는 내가 생각했던 (그리고 아직도 이해하지 않는다) 그 I 필요한 모든 공간 (및 기타)을 넣으십시오

누군가가 나를 도울 수 있습니까? 시간

public class DatabaseHandler extends SQLiteOpenHelper { 

    private static final int DATABASE_VERSION = 3; 
    private static final String DATABASE_NAME = "rekordai"; 
    private static final String TABLE_REKORDAI = "rekordai"; 

    private static final String KEY_ID = "id"; 
    private static final String KEY_REKORDAI = "rekordai"; 

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

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String CREATE_REKORDAI_TABLE = "CREATE TABLE " + TABLE_REKORDAI + " (" 
       + KEY_ID + " INTEGER PRIMARY KEY, " + KEY_REKORDAI + " TEXT," + ") "; 
     db.execSQL(CREATE_REKORDAI_TABLE); 
    } 

에 대한

덕분에 나는 위의 실수 (에서 onCreate 방법) ...

나머지 ...


@Override 
    public void onUpgrade(SQLiteDatabase db, int oldV, int newV) { 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_REKORDAI); 

     onCreate(db); 

    } 
    void addRekordas(Rekordas r){ 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues v = new ContentValues(); 
     v.put(KEY_REKORDAI, r.getRekordas()); 

     db.insert(TABLE_REKORDAI, null, v); 
     db.close(); 
    } 
    Rekordas getRekordas(int id){ 
     SQLiteDatabase db = this.getReadableDatabase(); 

     Cursor c = db.query(TABLE_REKORDAI, new String[]{ KEY_ID, KEY_REKORDAI}, 
       KEY_ID + " = ?", new String[]{ String.valueOf(id)}, null, null, null, null); 
     if(c != null){ 
      c.moveToFirst(); 
     } 
     Rekordas r = new Rekordas(Integer.parseInt(c.getString(0), Integer.parseInt(c.getString(1)))); 

     return r;  
    } 

    public ArrayList<Rekordas> getAllRekordas(){       // Patikrinti veliau 
     String selectQuery = "SELECT * FROM " + TABLE_REKORDAI; 
     ArrayList<Rekordas> rekordaiList = new ArrayList<Rekordas>(); 

     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor cursor = db.rawQuery(selectQuery, null); 

     if (cursor.moveToFirst()){ 
      do{ 
       Rekordas r = new Rekordas(); 
       r.setId(Integer.parseInt(cursor.getString(0))); 
       r.setRekordas(Integer.parseInt(cursor.getString(1))); 
       rekordaiList.add(r); 
      } while(cursor.moveToNext()); 


     } 
     return rekordaiList; 
    } 

    public int upgradeRakordas(Rekordas r){ 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues v = new ContentValues(); 
     v.put(KEY_REKORDAI, r.getRekordas()); 

     return db.update(TABLE_REKORDAI, v, KEY_ID + " = ?", new String[]{String.valueOf(r.getId())}); 
    } 
    public void deleteRekordas(Rekordas r){ 
     SQLiteDatabase db = this.getWritableDatabase(); 
     db.delete(TABLE_REKORDAI, KEY_ID + " = ?", new String[]{String.valueOf(r.getId())}); 
     db.close(); 
    } 
    public int getRekordaiCount(){ 
     SQLiteDatabase db = this.getReadableDatabase(); 
     String countQuery = "SELECT * FROM " + TABLE_REKORDAI; 
     Cursor c = db.rawQuery(countQuery, null); 
     c.close(); 

     return c.getCount(); 
    } 
} 
을했다 생각

다시 한 번 감사드립니다! 와 나는 당신의 문제가 여기 CREATE TABLE SQL COMMAND

+ KEY_ID + " INTEGER PRIMARY KEY, " + KEY_REKORDAI + " TEXT," + ") ";// remove semi column after TEXT 

올바른 CREATE TABLE SQL COMMAND 아래

String CREATE_REKORDAI_TABLE = "CREATE TABLE " + TABLE_REKORDAI + " (" 
      + KEY_ID + " INTEGER PRIMARY KEY, " + KEY_REKORDAI + " TEXT" + ") "; 

답변

2

입니다

김 많은 코드 정말 미안 해요
관련 문제