【问题标题】:Create Android SQL Database with a few pre populate data使用一些预填充数据创建 Android SQL 数据库
【发布时间】:2012-11-03 23:11:28
【问题描述】:

我在这里浏览了许多示例,但所有示例看起来都很复杂,而且其中大多数都是针对大数据的。我是 Android 和 SQL 的新手。我想做的只是用一些数据预先填充我的 SQL 数据库。

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE restaurants (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, address TEXT, type TEXT, notes TEXT, feed TEXT, lat REAL, lon REAL);");

    ContentValues cv=new ContentValues();
    cv.put("name", "Hi");
    cv.put("address", "There");
    cv.put("type", "delivery");
    cv.put("notes", "");
    cv.put("feed", "");
    cv.put("lat", "");
    cv.put("lon", "");
    getWritableDatabase().insert("restaurants", "name", cv);
}

没有错误,但不幸的是也没有插入数据。这应该很简单,请帮帮我?

【问题讨论】:

    标签: android sql database populate


    【解决方案1】:

    您的方法很好,在 SQLiteOpenHelper#onCreate() 内部是放置初始数据的正确位置,因为您可以在此处创建处于您喜欢的状态的数据库。

    但是在onCreate 内部,你直接使用db.insert("restaurants", "name", cv)。此时,您还没有完成创建您尝试通过getWritableDatabase() 获取的可写数据库。不确定这是否是问题,但可能是。

    【讨论】:

    • 我尝试直接使用 db.insert("restaurants", "name", cv) ,没有错误但仍然没有插入数据。我可以尝试任何其他建议吗? TQ。
    • 对不起,它可以工作,我清除并删除了模拟器上的应用程序,重新启动,数据在那里。谢谢!
    • 是的,onCreate 仅在数据库文件不存在时执行。一旦完成,您只需重新安装/更新您的应用程序SQLiteOpenHelper 假定现有文件已正确创建。如果您想稍后更改数据库状态,您将使用onUpgrade 机制。
    【解决方案2】:

    使用 db.insert("restaurants", "name", cv);

    【讨论】:

    • 我尝试直接使用 db.insert("restaurants", "name", cv) ,没有错误但仍然没有插入数据。我可以尝试任何其他建议吗? TQ。
    • 对不起,它可以工作,我清除并删除了模拟器上的应用程序,重新启动,数据在那里。谢谢!
    • 没关系的伙伴.. 很乐意帮助你:)
    猜你喜欢
    • 2021-01-26
    • 1970-01-01
    • 2013-10-25
    • 2023-04-10
    • 1970-01-01
    • 2011-01-25
    相关资源
    最近更新 更多