2014-12-02 42 views
0

這是我想創建一個數據庫表Android的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的提取。 。 。

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( 「數據庫」, 「所謂的onCreate」)從來沒有達到?啓動應用程序後,只需訪問Log.d(「Database」,「Constructor called」)語句即可。

謝謝!

+1

清除您的數據並再次測試 – 2014-12-02 09:19:18

+0

onCreate將在首次安裝或升級數據庫版本時調用 – 2014-12-02 09:19:32

回答

0

我猜桌子已經在那裏了。所以onDreate不會再被執行。嘗試安裝SQLite Viewer以更好地可視化您的數據庫。 我也不能在你的DatabaseHelper中看到方法getWritableDatabase()。請檢查一下。

你可以嘗試的另一件事是修改你的create table命令到create table中,如果不存在的話。