2010-07-17 79 views
1

目前我正在處理我的第一個Android應用程序,並且遇到了我無法解決的問題。當我嘗試將數據插入到自己的數據庫中有一個錯誤:三月七日至一十八日:41:04.414:ERROR/AndroidRuntime(3480):顯示java.lang.NullPointerException使用ContentValues存儲的值的順序不正確,爲什麼?

我對插入表的代碼是:

public long createRecord(String created_time, String modified_time, 
     long reading, String unit, String period, String remark) { 

    ContentValues values = new ContentValues(6); 
    values.put(KEY_CREATED_TIME, created_time); 
    values.put(KEY_MODIFIED_TIME, modified_time); //System.out.println(values); 
    values.put(KEY_RECORD, reading); //System.out.println(values); 
    values.put(KEY_UNIT, unit); //System.out.println(values); 
    values.put(KEY_PERIOD, period);// System.out.println(values); 
    values.put(KEY_REMARK, remark); 

    System.out.println(values); 
    return mDb.insert(DATABASE_TABLE, null , values); 

} 

這是我的Adapter類,它是我的DatabaseHelper類的一個實例。對於我的DatabaseHelper類,我可以將創建的數據庫從資產文件夾複製到系統數據庫文件夾中。但只是不能創建數據到表中,我試圖打印出「值」,它表明:

created_time = 2010-07-18 03:41:04備註=單位= mg/dL讀數= 67 period = Before Meal modified_time = 00:00:00 這不是它應該的樣子,所以我猜想這可能是問題所在。 任何人都可以幫助我嗎?在線搜索,但沒有這麼多的信息。在此先感謝:)

回答

0

訂單不被保留的原因是,ContentValues支持HashMap。沒關係。
該問題很可能是由mDbnull(與System.out.println("" + mDb);一起檢查)造成的。

+0

雅,我檢查了mDb它顯示「null」。我可以知道這個原因嗎?我該如何解決?謝謝 – Wen 2010-07-18 04:12:07

+0

在你得到一個引用的行上出錯了:'SQLiteDatabase mDb = // null here;' – yanchenko 2010-07-18 04:38:40

+0

好的,我加了mDb = mDbHelper.getWritableDatabase();現在,代碼在模擬器模式下工作正常,但不能在手機上工作。如果我在設備上運行代碼,它將顯示錯誤消息: 07-18 13:51:49.595:錯誤/數據庫(2022):插入備註= OL期間=之前錯誤修改時間= 00:00:00單位= mg/dL reading = 68 created_time = 2010-07-18 13:51:49 07-18 13:51:49.595:ERROR/Database(2022):android.database.sqlite.SQLiteException:no such table:records:,while compiling :INSERT INTO記錄(備註,週期,modified_time,unit,reading,created_time)VALUES(?,?,?,?,?,?); 有什麼建議嗎? – Wen 2010-07-18 05:55:29

-1

你見過sqliteDatabase的源代碼,我把它做了一個SQL和處理它。但是順序是基於:

Set<Map.Entry<String, Object>> entrySet = null; 
    if (initialValues != null && initialValues.size() > 0) { 
     entrySet = initialValues.valueSet(); 
     Iterator<Map.Entry<String, Object>> entriesIter = entrySet.iterator(); 

我覺得有什麼錯呢?或訂貨會時大量values.Do你發現錯誤somew

0
if(db!=null){ 
     ContentValues row = new ContentValues(); 
     row.put("rt_id",tid); 
     row.put("rs_id", sid); 
     row.put("rsubject", rsubject); 
     row.put("rdescr",rdescr); 
     row.put("day", day); 
     row.put("month",month); 
     row.put("year",year); 
     row.put("stamp", stamp); 
     row.put("amount",amount); 

     long chk = db.insert("records",null, row); 

     if(chk!=0){ 
      Toast.makeText(myContext, "Record added successfully",Toast.LENGTH_LONG).show(); 
     }else{ 
      Toast.makeText(myContext, "Record added failed...! ",Toast.LENGTH_LONG).show(); 
     } 
     }else{ 
      Toast.makeText(myContext, "could Not connected database..!!! ",Toast.LENGTH_LONG).show(); 
     } 
    }catch(SQLiteException exc){ 
     Toast.makeText(myContext, "Record could not saved...!!! ",Toast.LENGTH_LONG).show(); 
    }finally{ 
     db.close(); 
     } 

你可以檢查你的數據庫對象爲空或不是......或者只是調用println it..All最好檢查它。

相關問題