【问题标题】:multiple insert statements in sqlite androidsqlite android中的多个插入语句
【发布时间】:2014-09-05 13:40:46
【问题描述】:

大家好,我有多个插入语句的问题,我需要插入许多记录。我以这种方式编写过,但记录没有插入到“userbill”表中。帮我??

.. 这是代码:

    SQLiteDatabase db = mySQLiteHelper.getWritableDatabase();
    String sql = "insert into userbill (billid, userid, date, amount, bill_status) values (?, ?, ?, ?, ?)";

    db.beginTransaction();
    SQLiteStatement st = db.compileStatement(sql);

    try{
        for(int i=0;i<Userid.length;i++)
        {

                st.bindLong(1, billid);
                st.bindString(2, Userid[i]);
                st.bindString(3, due_date);
                st.bindDouble(4, amount/Userid.length);
                st.bindString(5, "Due");

                long entryID = st.executeInsert();
                st.clearBindings();
        }

       db.setTransactionSuccessful();
    }
    catch(Exception e)
    {
        //e.printStackTrace();
        Log.e("MYAPP", "exception", e);
    }
    finally
    {
        db.endTransaction();
    }
    db.close(); 

日志猫:

09-05 13:12:48.610: D/dalvikvm(7982): GC_FOR_ALLOC 释放 314K,10% 释放 5030K/5568K,暂停 17ms,总共 18ms

09-05 13:12:48.610:I/dalvikvm-heap(7982):将堆(碎片情况)增加到 6.181MB,分配 1127532 字节

09-05 13:12:48.614: D/dalvikvm(7982): GC_FOR_ALLOC 释放 2K,9% 释放 6129K/6672K,暂停 5ms,总共 5ms

09-05 13:12:48.710:W/EGL_genymotion(7982):eglSurfaceAttrib 未实现

09-05 13:12:57.014:I/SQLiteConnectionPool(7982):/data/data/com.perfect12.app2maintain/databases/AMTDB 的连接池已关闭,但仍有 1 个连接在使用中。当它们被释放回池中时,它们将被关闭。

09-05 13:12:57.286:W/EGL_genymotion(7982):eglSurfaceAttrib 未实现

【问题讨论】:

  • 任何类型的错误信息?你可以发布 logcat 吗?
  • 感谢您的回复,但没有收到任何错误。
  • 尝试删除“;”在您的语句字符串中的声明中,并确保 UserId 不是 0..
  • 感谢您的回复。在我删除分号“;”后它现在可以工作了在sql语句中。

标签: android sqlite insert bulkinsert


【解决方案1】:

你写

db.beginTransaction();

在你的代码中两次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 2016-05-11
    • 2016-06-10
    • 2012-10-06
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多