我在sqlite中创建了一个DB,并在此DB中创建了一个表。现在我想在此表中再添加一个表。 但我不明白为什么这个新表不在DB中。
请建议。
答案 0 :(得分:3)
我想这听起来像是一个更新问题。如果更改表列或创建新表,则需要更新数据库。
SQLiteDatabase YourDatabaseName;
YourDatabaseName = getData.getWritableDatabase();
getData.onUpgrade(YourDatabaseName, 1, 2);
希望这会有所帮助
答案 1 :(得分:1)
如果你想创建一个不存在的新表,那么使用它。让你想在点击btn时创建表
Button btn=new Button(this);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SQLiteDatabase db;
db = databaseclassObject.getWritableDatabase();
String str="create table tablename(Col1 text not null,col2 text not null);";
db.execSQL(str);
}
});
答案 2 :(得分:1)
将新表添加到数据库...
第1步:增加数据库版本
步骤2:在onUpgrade:
方法中创建一个新表@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (newVersion > oldVersion) {
db.execSQL("CREATE TABLE NEW_TABLE COLUMN1 TEXT," +
"COLUMN2 TEXT," +
"COLUMN3 TEXT");
}
}
答案 3 :(得分:0)
查看这两个链接。示例代码位于第二个:
http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
您应该使用帮助程序类来访问数据库,这些链接将有所帮助。如果你从一开始就正确地做到这一点,那么在以后升级的过程中,它将为你节省很多麻烦。希望它有所帮助。
此外,在第二个链接DBHelper.java中,您可以在文件开头看到创建字符串,以防您不知道要查找的内容。
private static final String DBVERSION_CREATE =
"create table " + TABLE_DBVERSION + " ("
+ "version integer not null);";
private static final String NOTES_CREATE =
"create table " + TABLE_NOTES + " ("
+ "id integer primary key autoincrement, "
+ "note text, "
+ "lastedit text);";