2014-09-05 87 views
0

大家好我有一個多插入語句的問題,我需要插入很多records.i已經用這種方式寫入,但記錄沒有插入到「userbill」表中。幫我??sqlite中的多個插入語句android

..這裏是代碼:

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

logcat的:

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堆(7982):生長堆(FRAG情況下),以用於6.181MB 1127532字節分配

09-05 13 :12:48.614:D/dalvikvm(7982):GC_FOR_ALLOC免費d 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沒有實現

+0

任何類型的錯誤消息?你可以發佈logcat嗎? – Opiatefuchs 2014-09-05 13:54:36

+0

感謝您的回覆,但沒有收到任何錯誤。 – Anil 2014-09-05 14:04:50

+0

嘗試刪除「;」在聲明字符串中的聲明中,並確保UserId不是0 .. – Opiatefuchs 2014-09-05 14:14:24

回答

5

你在你的代碼編寫

db.beginTransaction(); 

兩次。