我有一个名为“数据库”的SQLiteDatabase。其中有一张名为“Pics”的表格。在表中有三列如下,DrawableName TEXT,DrawableReference INTEGER,PictureRating REAL。我想用一个我期望在DrawableReference列中的整数查询我的数据库。我想这样做,以便我可以从同一行获取相应的DrawableName和PictureRating。我的查询出了什么问题?Android的SQLiteDatabase查询与WHERE子句
public class EditItemActivity extends Activity {
EditText textField=null;
RatingBar ratingBar=null;
SQLiteDatabase db=null;
Cursor dbCursor=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent=getIntent();
Integer imageId=intent.getIntExtra("imageId",-1);
if(imageId==-1){
return;
}
String id=imageId.toString(); //not used right now
setContentView(R.layout.edit_item_layout);
db=this.openOrCreateDatabase("Database",this.MODE_PRIVATE,null);
String selection="DrawableReference = ?";
String[] whereClause={id.toString()};
dbCursor=db.query("Pics",null,selection,whereClause,null,null,null);//get the row where the correct DrawableReference integer is found
textField=(EditText)findViewById(R.id.title);
ratingBar=(RatingBar)findViewById(R.id.image_rating_bar);
if(dbCursor.moveToFirst()){
textField.setText(dbCursor.getString(0)); //this never happens
}
}
}
试试这个'的String [] whereClause = {imageId.toString()};' –
没有工作:( –
或尝试按我的答案,但要确保你的id是不是空 –