Android 无法在SQLite中创建第二个表
我在Android中的SQLite数据库有一个问题,我在这里创建了我的第一个表用户创建了一个列表名ex:Vestures,它将显示在Recycler视图中,它已成功创建并显示 当我创建第二个表时,用户可以在其中输入胡萝卜、豆类等蔬菜的名称,并希望保存在蔬菜中: 当我为第二个表插入值时,它显示Added Successfully!但该表未创建,也未插入任何值 数据库助手:Android 无法在SQLite中创建第二个表,android,sqlite,Android,Sqlite,我在Android中的SQLite数据库有一个问题,我在这里创建了我的第一个表用户创建了一个列表名ex:Vestures,它将显示在Recycler视图中,它已成功创建并显示 当我创建第二个表时,用户可以在其中输入胡萝卜、豆类等蔬菜的名称,并希望保存在蔬菜中: 当我为第二个表插入值时,它显示Added Successfully!但该表未创建,也未插入任何值 数据库助手: public class DatabaseHelper extends SQLiteOpenHelper { // Data
public class DatabaseHelper extends SQLiteOpenHelper {
// Database Name
public static final String DATABASE_NAME = "names.db";
// Table 1
public static final String TABLE_NAME = "listview_name";
public static final String COLUMN_ID = "ID";
public static final String COLUMN_TITLE = "ITEM_NAME";
private static final String COLUMN_IMAGE = "image_bitmap";
// Table 2
private static final String TABLE2_NAME = "listitem_name";
public static final String COLUMN1_ID = "ID";
public static final String COLUMN2_TITLE = "LISTITEMS_NAME";
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String query =
"CREATE TABLE IF NOT EXISTS " + TABLE_NAME + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY ,"
+ COLUMN_TITLE + " TEXT, "
+ COLUMN_IMAGE + " BLOB )";
sqLiteDatabase.execSQL(query);
String query1 =
"CREATE TABLE IF NOT EXISTS " + TABLE2_NAME + "("
+ COLUMN1_ID + " INTEGER PRIMARY KEY ,"
+ COLUMN2_TITLE + " TEXT )";
sqLiteDatabase.execSQL(query1);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLE2_NAME);
// Create tables again
onCreate(sqLiteDatabase);
}
在DatabaseHelper中创建我的第一个表在这里成功了,只是我创建了一个名称,并在Listview中显示:
void createlist(String title, byte[] image) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(COLUMN_TITLE, title);
cv.put(COLUMN_IMAGE, image);
Long result = sqLiteDatabase.insert(TABLE_NAME, null, cv);
if (result == -1) {
Toast.makeText(context, "Failed to create", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "Added Sucessfully", Toast.LENGTH_SHORT).show();
}
}
void itemlist(String items) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(COLUMN2_TITLE, items);
Long result = sqLiteDatabase.insert(TABLE2_NAME, null, cv);
if (result == -1) {
Toast.makeText(context, "Failed to create", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "Added Sucessfully", Toast.LENGTH_SHORT).show();
}
}
在DatabaseHelper中创建第二个表这里没有成功,只是我创建了蔬菜胡萝卜、豆类的名称,并在Listview中显示:
void createlist(String title, byte[] image) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(COLUMN_TITLE, title);
cv.put(COLUMN_IMAGE, image);
Long result = sqLiteDatabase.insert(TABLE_NAME, null, cv);
if (result == -1) {
Toast.makeText(context, "Failed to create", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "Added Sucessfully", Toast.LENGTH_SHORT).show();
}
}
void itemlist(String items) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(COLUMN2_TITLE, items);
Long result = sqLiteDatabase.insert(TABLE2_NAME, null, cv);
if (result == -1) {
Toast.makeText(context, "Failed to create", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "Added Sucessfully", Toast.LENGTH_SHORT).show();
}
}
Activity.java:
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = lname.getText().toString();
if (!TextUtils.isEmpty(lname.getText().toString())) {
DatabaseHelper db = new DatabaseHelper(getApplicationContext());
db.itemlist(name);
Toast.makeText(AddItems.this, "Added Sucessfully !", Toast.LENGTH_SHORT).show();
} else
Toast.makeText(AddItems.this, "The name cannot be empty!", Toast.LENGTH_LONG).show();
}
});
每次将表或任何列更改为表时,都需要增加数据库版本。每次将表或任何列更改为表时,都需要增加数据库版本。每次将表或任何列更改为表时,都需要增加数据库版本
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 4);
this.context = context;
}
每次将表或任何列更改为表时,都要增加数据库版本
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 4);
this.context = context;
}