Значения, хранящиеся с использованием ContentValues, не в правильном порядке, ПОЧЕМУ? - PullRequest
1 голос
/ 18 июля 2010

В настоящее время я работаю над своим первым приложением для Android и столкнулся с чем-то, что не могу решить.Когда я пытаюсь вставить данные в свою базу данных, возникает ошибка: 07-18 03: 41: 04.414: ОШИБКА / AndroidRuntime (3480): java.lang.NullPointerException

Мой код для вставки в таблицу:

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

}

Это класс моего адаптера, который является экземпляром моего класса DatabaseHelper.Для моего класса DatabaseHelper я могу скопировать созданную базу данных из папки активов в папку системных баз данных.Но просто не могу создать данные в таблицу, я попытался распечатать «значения», это показало, что:

create_time = 2010-07-18 03:41:04 замечание = на единицу = мг /чтение dL = 67 period = Before Me Изменено_time = 00: 00: 00 , что не было так, как должно быть, поэтому я догадался, что это может быть проблемой.Кто-нибудь может мне с этим помочь?Искал в интернете, но не так много информации об этом.Заранее спасибо :)

Ответы [ 3 ]

0 голосов
/ 15 декабря 2010

Вы видели исходный код sqliteDatabase i? Он создал 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();

Я думаю, что-то не так с этим?или порядок будет неправильным, когда много значений. Вы найдете somew

0 голосов
/ 08 апреля 2012
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();
         }

Вы можете проверить, является ли объект вашей базы данных нулевым или нет ... Или проверить его, просто напечатав его .. Все лучшее.

0 голосов
/ 18 июля 2010

Причина, по которой заказ не был сохранен, состоит в том, что ContentValues поддерживается HashMap. Так что все в порядке.
Вероятно, проблема вызвана тем, что mDb является null (проверьте с помощью System.out.println("" + mDb);).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...