在我的应用程序中,我为数据库创建一个表,如下所示:
String action;
action= "CREATE TABLE ";
action+=TABLE_LIEUX;
action+="(Name TEXT NOT NULL PRIMARY KEY);";
base.execSQL(action);
然后我使用以下命令向该表添加一条记录:
ContentValues valeur;
long InsertLine=-10;
valeur=new ContentValues(1);
valeur.put("Name","'"+name+"'");
InsertLine=getWritableDatabase().insert(TABLE_LIEUX,null,valeur);
正如预期的那样,我获得的 InsertLine
值为 1。但是当我尝试搜索添加了以下内容的行时:
result=(SQLiteCursor)getWritableDatabase().query(TABLE_LIEUX,null,"Name='"+name+"'",null,null,null,null);
我得到的SQLiteCursor
结果的长度为-1。当我尝试再次添加该行时,我得到一个 SQLiteException
,它指示该行应该是唯一的(因此,无论搜索结果如何,该行已经在数据库中)。
有什么想法吗?
最佳答案
您必须强制Cursor
读取返回的数据(通过调用moveToFirst
或类似的方法),然后才能获取游标的记录计数。
此外,使用 ContentValues
put
函数时不得引用值;数据库中的值现在包含多余的引号。
关于java - 在 SQLiteDatabase 中找不到记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17628447/