[英]Single Row from SQLite Database in Android
我花了最慘的時間試圖從數據庫中按ID抓取一行,但無法弄清楚為什么它不起作用。
在我的DatabaseHelper類中,我有以下代碼片段
public Cursor getData(String Id) {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("select * from " + BirdDB.BIRD_TABLE + "Where BIRD_ID = ?", new String[]{Id});
return res;
}
Col_0是表中小鳥的ID。 這就是我的活動頁面中的內容。
public void viewASingle() {
viewABird.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor res = MainActivity.myDB.getData(txt_Id.getText().toString());
if (res.getCount() == 0) {
showMessage("Error", "Nothing Found");
return;
}
StringBuffer buffer = new StringBuffer();
while (res.moveToNext()) {
buffer.append("ID :" + res.getString(0) + "\n");
buffer.append("Name : " + res.getString(2) + "\n");
buffer.append("Notes : " + res.getString(3) + "\n");
buffer.append("Location : " + res.getString(4) + "\n");
buffer.append("Date And Time : " + res.getString(5) + "\n");
}
showMessage("Data", buffer.toString());
}
}
);
}
因此,我確保其余代碼正常運行,並且是通過烤面包消息實現的。 該應用程序崩潰並顯示了rawQuery語句,我認為我做對了。 我確實檢查了其他堆棧溢出問題,並嘗試了它們的語句,但是沒有用。 那么有人的想法嗎?
在串聯"Where BIRD_ID = ?"
留一個空格,這樣表格的名稱就不會停留在條件上。 我也建議使用異常處理,它將幫助您調試並使程序更穩定
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.