我似乎遇到了一个简单的数据库插入语句的困难。 我正在插入数据库然后(出于调试原因)检查行数。对于第一个例子,这不起作用。对于第二个“rawQuery”它。我忽略了简单的事情吗?我之前已经使用过这种方法,没有任何问题!
这不起作用:
contentValues = new ContentValues();
contentValues.put("classId", cursor.getString(0));
contentValues.put("to_do", toDo);
contentValues.put("date", date);
out("SIZE OF TODO+"+fetchCount());//returns 105
db.insert("toDo", null, contentValues);
out("NEW SIZE OF TODO+"+fetchCount());//still returns 105!
这样做:
out("SIZE OF TODO+"+fetchCount()); //returns 105
db.execSQL("insert into toDo values(null, "+cursor.getString(0)+", '"+toDo+"', '"+date+"')");
out("NEW SIZE OF TODO+"+fetchCount());//returns 106
出了什么问题?
答案 0 :(得分:1)
猜测:第3行和第4行没有将字符串插入ContentValues集,而是插入原始对象。后来,某些类型转换失败了。在参数上调用toString()。
在第二段摘录中,您隐式强制转换为字符串。
答案 1 :(得分:0)
我是个白痴,@ Rob建议查看我的创建表让我意识到,我指的是错误的列名。我从未想过像这样的更新语句会无声地失败!谢谢@Rob