5

これは簡単なものです!それでも、私は何かが欠けています。私を助けてください。ここでは、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();
4

5 に答える 5

8

1-またはそれ以上のパラメータ化されたステートメントを使用する

String query = "SELECT COUNT(*) FROM " + tableName + " WHERE columnName = ?";
cursor = db.rawQuery(query, new String[] {comment});

2-条件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(); 
于 2012-06-26T11:23:40.807 に答える
5

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); 
于 2012-06-26T14:03:44.880 に答える
2

使ってみてください

Cursor cursorc = db.rawQuery("select * from list where ID = ?", new String[] {id+""});
于 2012-06-26T11:24:51.773 に答える
2

この方法で試してください

    Suppose long id=5;
    String[] col=new String[]{KEY_ROWID,KEY_NAME,KEY_ADDRESS};  // your column which data u want to retrive if id is same 
    Cursor c=db.query(DATABASE_TABLE, col, KEY_ROWID+"="+id,null, null, null, null);
    if(c!=null){
    c.moveToFirst();
    // get data here which u want accroding to ur requirement 
    }
于 2012-06-26T11:40:08.513 に答える
0

これを試して

Cursor cursorc = db.rawQuery("SELECT * FROM LIST WHERE ID='"+id+"'", null);
于 2012-06-26T11:24:34.647 に答える