データベースにテーブルがあり、このテーブルの各レコードには複数の文字列を格納する必要があります。実行時に決定されるため、文字列の数はわかりません。
データベース テーブルに画像 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() メソッドを動的に呼び出して、新しい列を追加したり、他の方法でそれを行うことはできますか?
前もって感謝します :)