目前我正在开发我的第一款Android应用,但遇到了一些我无法解决的问题。当我尝试将数据插入到我自己的数据库中时出现错误:07-18 03:41:04.414:ERROR / 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);
}
这是我的Adapter类,它是我的DatabaseHelper类的一个实例。对于我的DatabaseHelper类,我可以将创建的数据库从assets文件夹复制到系统数据库文件夹中。但是只是无法将数据创建到表中,我试图打印出“值”,它表明:
created_time = 2010-07-18 03:41:04 remark = on unit = mg / dL reading = 67 period = Before Meal modified_time = 00:00:00 这不是它应该的方式,所以我猜这可能是问题所在。 谁能帮我这个?在线搜索但没有这么多的信息。在此先感谢:)
答案 0 :(得分:0)
订单未被保留的原因是ContentValues
由HashMap
支持。那没关系。
问题可能是mDb
null
造成的(System.out.println("" + mDb);
检查)。
答案 1 :(得分: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();
}
您可以检查您的数据库对象是否为空...或者仅通过打印它来检查它......一切顺利。
答案 2 :(得分:-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();
我觉得它有问题吗?或许多值时订单会出错。你找到了什么