2012-12-07 3 views
0

누구도 이것이 작동하지 않는 이유를 알 수 있습니까? 간단한 행을 테이블에 추가 한 다음 올바르게 추가되었는지 확인하려고합니다. 테이블을 쿼리하려고하면 프로그램이 중단됩니다. 내 머리가 너무 오래 쳐다 보면서 아파요.SQLite가 삽입물을 확인하지 못합니다.

private static final String GAMES_CREATE = "create table " + 
      GAMES_TABLE + " (" + KEY_ID + 
      " integer primary key autoincrement, " + 
      GAME_COLUMN + " text not null, " + 
      CIV_COLUMN + " text);"; 
db.execSQL(GAMES_CREATE); 
커서를 씌우려고

답변

1

그냥 아무것도 확인이 될 것입니다 : 캐치되지 않는 예외 또한

으로 종료

addNewGame(1); 

Cursor cursor2 = db.query(myDBOpenHelper.GAMES_TABLE, new String [] {"MAX("+GAME_COLUMN+") AS GC"}, null, null, null, null, null); 
System.err.println("made it this far");  
String temp = cursor2.getString(cursor.getColumnIndex("GC")); //crash!!! 
System.err.println("didn't get here); 


private static void addNewGame(int g) { 
     ContentValues newValues = new ContentValues(); 
    SQLiteDatabase db = DBOpenHelper.getWritableDatabase(); 
    newValues.put(GAME_COLUMN, g); 
    newValues.put(CIV_COLUMN, ""); 
    db.insert(myDBOpenHelper.GAMES_TABLE, null, newValues); 
} 

스레드, 여기에 테이블이 생성 된 곳에서 코드입니다 없는? 이 코드를 사용해보세요.

if(cursor2.getcount>0) 
{ 
cursor2.moveTofirst(); 
String temp = cursor2.getString(cursor.getColumnIndex("GC")); 
} 

시도해보십시오.

+0

이렇게했습니다. 방금 레코드를 삽입했을 때 널 커서를 확인해야하는 이유는 모르겠지만이 시점에서는 상관하지 않습니다. 만약 내가 1000000 + 1을 줄 수 있다면. 매우 감사합니다! – Alex

+0

대부분 환영합니다. –