Android 简单的insert语句不起作用。SqLite

Android 简单的insert语句不起作用。SqLite,android,sqlite,Android,Sqlite,我似乎在使用简单的数据库插入语句时遇到了困难。 我将向数据库中插入一些内容,然后(出于调试原因)检查行数。对于第一个例子,这不起作用。对于第二个“rawQuery”,它是这样做的。我是否忽略了一些简单的事情?我以前多次使用这种方法,没有任何问题 这不起作用: contentValues = new ContentValues(); contentValues.put("classId", cursor.getString(0)); contentValues.put("to_do", toDo)

我似乎在使用简单的数据库插入语句时遇到了困难。 我将向数据库中插入一些内容,然后(出于调试原因)检查行数。对于第一个例子,这不起作用。对于第二个“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

出什么问题了?

猜测一下:第3行和第4行不是在ContentValues集中插入字符串,而是在原始对象中插入字符串。稍后,某些类型转换失败。对参数调用toString()


在第二段摘录中,您隐式地强制转换为字符串。

我真是个白痴,@Rob建议查看我的create tables,这让我意识到,我指的是错误的列名。我从来没有想到像这样的update语句会无声地失败!谢谢@Rob

第一个方法的日志是什么?我在Eclipse中看不到任何相关的日志,除了我自己生成的内容,它读取
02-06 20:32:56.996:ERROR/DDD(15179):TODO的大小=106 02-06 20:32:59.090:ERROR/DDD(15179):TODO的新大小=106
您需要添加并使用LogCat视图选项卡,如下所示:窗口|显示视图|其他…|LogCat。这应该包括插入错误的日志。我使用的是LogCat,但问题是它会默默地失败,没有任何错误的参考!好吧,我正在定义
String date=“”
for(String toDo:toDoArray)
那么我肯定不必将它们重铸为String吗?
date
是SqLite中的保留字吗?这可能会引起问题吗?那样的话,不,完全正确。你能上传你的创作吗?e、 创建表格。。。如果保留了日期,那么根据权利,创建也应该失败,因此您的第二个摘录也会失败。