好的,所以我在Android中的SQLite中创建了我的数据库,但它只是一个可读的,我想将我的信息输入到表中,以便在Android中添加函数。
有许多关于如何在运行时通过应用程序执行此操作的教程,但是当用户加载应用程序时,如何在应用程序中获得表信息?
我相信很多人会推荐这个http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
这很好,但它不支持外键......
我知道你可以这样做,但我有很多信息。
ContentValues values = new ContentValues();
values.put(DBAdapter.Column1, "HP");
values.put(DBAdapter.Column2, "qw");
values.put(DBAdapter.Column3, "5280");
values.put(DBAdapter.Column4, "345, 546");
db.insert(DBAdapter.TABLE, null, values);
答案 0 :(得分:1)
有外键。您需要从转储中删除此行:
PRAGMA foreign_keys=OFF
;和violà!你有你的外键。
你所要做的就是:
db.execSQL("PRAGMA foreign_keys=ON;");
创建数据库时。默认情况下,它处于关闭状态,当您打开外键时,您将无法获得外键。想要一些示例代码?
答案 1 :(得分:0)
你不能只在你的类中执行扩展SQLiteOpenHelper的insert语句吗?像这样:
public class DataStore extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {
// execute create
// execute insert
}
}
答案 2 :(得分:0)
但是当用户加载应用程序时,如何在应用程序中获得表信息?
试试这个:
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
if (!db.isReadOnly()) {
db.execSQL("PRAGMA foreign_keys=ON;");
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, DATA);
long id = db.insert(TABLE_NAME, null, values);
}
}