Ada*_*H S 5 java sqlite android android-sqlite
这是一个简单的!然而,我错过了一些东西.请帮帮我.在这里,我试图通过id获取值,但不能这样做.即使在更改id的值后,它也会返回相同的值.
    db = openOrCreateDatabase("DBSOURCE", 0, null);
    Cursor cursorc = db.rawQuery("SELECT * FROM LIST WHERE ID="+id+"", null);
    cursorc.moveToFirst();
    int NameID = cursorc.getColumnIndex("Name");
    int mobilenumberID = cursorc.getColumnIndex("MoblieNumber");
    edName.setText(cursorc.getString(NameID));
    edMobNum.setText(cursorc.getString(mobilenumberID));
    cursorc.close();
    db.close();
1-或更好地使用参数化语句
String query = "SELECT COUNT(*) FROM " + tableName + " WHERE columnName = ?";
cursor = db.rawQuery(query, new String[] {comment});
2 - 使用conditon c.moveToFirst()或c.getCount()> 0或(!c.isAfterLast())
if (c.moveToFirst()){ 
    do{ 
       //if you not need the loop you can remove that
       id = c.getInt(c.getColumnIndex("_id"));
   }
 while(cursor.moveToNext());
}c.close(); 
id列标题实际上是"ID"吗?或者是一个设置为"_id"的变量(Android数据库中主键的常用列名)?
如果是后者,则查询不正确,因为您使用"ID"作为文字列名.尝试将其更改为:
Cursor cursorc = db.rawQuery("SELECT * FROM LIST WHERE " + ID + " = " + id, null); 
甚至这个:
Cursor cursorc = db.rawQuery("SELECT * FROM LIST WHERE _id = " + id, null);