2014-12-02 56 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中,如果不存在的话。