3

データベースにテーブルがあり、このテーブルの各レコードには複数の文字列を格納する必要があります。実行時に決定されるため、文字列の数はわかりません。

データベース テーブルに画像 uri を動的に追加したいのですが、ユーザーは自分のアプリに必要なだけ画像を動的に追加するので、それらの uri を保存する必要があります。それを行う正しい方法は何ですか?

このInsert new column into table in sqliteに従って、このようなことを試みていますか?

String ColumnName=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString() + "/" + "image1.jpg");

addNewColumn(ColumnName);

これには以下の方法を使用しました(機能しませんでした):-

まず、テーブルに新しい列を追加しています:-

public Cursor addColumn(String name){
    db=dbhelper.getWritableDatabase();
    return  db.rawQuery("alter table info add column " + name + " text", null);
}

次に、これに uri を挿入します

public Boolean setUri(String columnName,String uri) {
    ContentValues cv= new ContentValues();
    cv.put(columnName,uri);
    SQLiteDatabase db =dbhelper.getWritableDatabase();
    long id=db.insert("info",null,cv);
    if(id>-1)
        return true;
    else
        return false;
}

上記のアプローチは正しいですか?

また、コードの下で検索して罰金を科しました:-

private static final String ALTER = "ALTER TABLE user_table ADD user_street1 TEXT";

     @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    {
        db.execSQL(ALTER);
    }

onUpgrade() メソッドを動的に呼び出して、新しい列を追加したり、他の方法でそれを行うことはできますか?

前もって感謝します :)

4

1 に答える 1