数据输入SQLite Android

时间:2012-03-31 17:20:00

标签: android sqlite

好的,所以我在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);

3 个答案:

答案 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);
    }
}