私のデータベースからIDで行を取得しようとしている最期の時間があり、なぜ動作していないのか分からない。私DatabaseHelperクラスでAndroidのSQLiteデータベースからの単一行
は私が
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ステートメントでクラッシュし、私はそれを正しくやっていると信じていました。私は他のスタックオーバーフローの質問をチェックアウトして、彼らの声明を試みたが、うーん、役に立たない。だから、誰かからどんなアイデア?
クラッシュに関する質問には常にクラッシュログを投稿してください。 – F43nd1r