2014-12-02 2 views
0

를 작성할 수 없습니다이 내가 데이터베이스 테이블안드로이드 SQLite는 - 테이블

public class GameDrive extends Activity { 


DatabaseHelper databaseHelper; 
SQLiteDatabase database; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_game_drive); 
    getActionBar().setDisplayHomeAsUpEnabled(true); 


    databaseHelper = new DatabaseHelper(this); 
    database = databaseHelper.getWritableDatabase(); 

을 만들 내 MainActivity의 추출이다. . . ("에서 onCreate라고" "데이터베이스")

public class DatabaseHelper extends SQLiteOpenHelper { 

private static final String DATABSE_NAME = "database"; 
private static final String TABLE_NAME = "tripdata"; 
private static final String COLUMN_ID = "_id"; 
private static final String COLUMN_TYP = "typ"; 
private static final String COLUMN_VALUE = "value"; 

private static final int DATABASE_VERSION = 1; 




public DatabaseHelper(Context context){ 
    super(context, DATABSE_NAME, null, DATABASE_VERSION); 
    Log.d("Database","Constructor called"); 

} 


//database is created for first time. creation of table and initial data inside done here 
@Override 
public void onCreate(SQLiteDatabase db) { 
    Log.d("Database","onCreate called"); 

    db.execSQL("CREATE TABLE "+TABLE_NAME+"("+COLUMN_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+COLUMN_TYP+" VARCHAR(255),"+COLUMN_VALUE+" VARCHAR(255));"); 

    Log.d("Database","onCreate called succesfuly"); 

} 

//drop tables, add tables etc. 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // TODO Auto-generated method stub 
    try { 
     db.execSQL("DROP TABLE IF EXISTS TABLE_NAME"); 
     onCreate(db); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

}

가 왜 Log.d이다는 도달하지 못했다? 응용 프로그램을 시작한 후 Log.d ("Database", "Constructor called") 문에 도달했습니다.

감사합니다.

+1

데이터를 지우고 다시 테스트하십시오. –

+0

onCreate는 처음 설치하거나 데이터베이스 버전을 업그레이드 할 때 호출됩니다 –

답변

0

이미 테이블이 있다고 생각합니다. 따라서 onDreate는 다시 실행되지 않습니다. SQLite Viewer를 설치하여 DB를보다 잘 시각화하십시오. 또한 DatabaseHelper에서 getWritableDatabase() 메서드를 볼 수 없습니다. 이것도 확인해주십시오.

시도해 볼 수있는 또 다른 방법은 create table 명령을 create table에 수정하는 것입니다.