簡體   English   中英

Android中SQLite數據庫中的單行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM