Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
数据输入SQLite Android_Android_Sqlite - Fatal编程技术网

数据输入SQLite Android

数据输入SQLite Android,android,sqlite,Android,Sqlite,好的,我已经在android中用SQLite创建了我的数据库,但它只是一个可读文件,我想将我的信息输入到表中,以便在android中为其添加函数 关于如何在运行时通过应用程序实现这一点,有很多教程,但是当用户加载应用程序时,如何在应用程序中已有表信息 我相信你们很多人都会推荐这个 这很好,但它不支持外键 我知道你可以这样做,但我有很多信息 ContentValues values = new ContentValues(); values.put(DBAdapter.Column1,

好的,我已经在android中用SQLite创建了我的数据库,但它只是一个可读文件,我想将我的信息输入到表中,以便在android中为其添加函数

关于如何在运行时通过应用程序实现这一点,有很多教程,但是当用户加载应用程序时,如何在应用程序中已有表信息

我相信你们很多人都会推荐这个

这很好,但它不支持外键

我知道你可以这样做,但我有很多信息

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);

外键在那里。您需要从转储中删除此行:

杂注外键=关闭
;还有小提琴!你有外键

你所要做的就是:

db.execSQL("PRAGMA foreign_keys=ON;");

当您创建数据库时。默认情况下,它是关闭的,当您打开它时,您将无法获得外键。想要一些示例代码吗?

您不能在扩展SQLiteOpenHelper的类中执行insert语句吗?大概是这样的:

public class DataStore extends SQLiteOpenHelper {

@Override
public void onCreate(SQLiteDatabase db) {
    // execute create
            // execute insert
    }
}

但是,当用户加载应用程序时,应用程序中怎么可能已有表信息

试试这个:

@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);
    }
}