Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法在SQLite中创建第二个表_Android_Sqlite - Fatal编程技术网

Android 无法在SQLite中创建第二个表

Android 无法在SQLite中创建第二个表,android,sqlite,Android,Sqlite,我在Android中的SQLite数据库有一个问题,我在这里创建了我的第一个表用户创建了一个列表名ex:Vestures,它将显示在Recycler视图中,它已成功创建并显示 当我创建第二个表时,用户可以在其中输入胡萝卜、豆类等蔬菜的名称,并希望保存在蔬菜中: 当我为第二个表插入值时,它显示Added Successfully!但该表未创建,也未插入任何值 数据库助手: public class DatabaseHelper extends SQLiteOpenHelper { // Data

我在Android中的SQLite数据库有一个问题,我在这里创建了我的第一个表用户创建了一个列表名ex:Vestures,它将显示在Recycler视图中,它已成功创建并显示

当我创建第二个表时,用户可以在其中输入胡萝卜、豆类等蔬菜的名称,并希望保存在蔬菜中:

当我为第二个表插入值时,它显示Added Successfully!但该表未创建,也未插入任何值

数据库助手:

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;

    }