2016-04-11 25 views
-1

Veritabanımdan bir satır kimliğine bürünmeye çalışıyorum ve neden çalışmadığını anlayamıyorum. Benim DatabaseHelper sınıfındakiAndroid'de SQLite Veritabanından Tek Satır

Ben

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 tablosundaki kuş kimliğidir Bu kod pasajını var. Etkinlik sayfamda sahip olduğum şey budur.

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()); 
        } 
       } 
      ); 
    } 

Kodun geri kalanının çalıştığından ve tost iletilerinden olduğundan emin oldum. Uygulama rawQuery ifadesi ile çöküyor ve doğru yaptığına inandım. Diğer yığın taşması soruları kontrol ettim ve ifadelerini denedim ama ne yazık ki boşuna. Yani birisi hakkında bir fikrin var mı?

+0

Lütfen her zaman kilitlenme ile ilgili sorulardaki kilitlenme günlüklerini gönderin. – F43nd1r

cevap

3

"Where BIRD_ID = ?" birleştirmeden önce bir alan bırakın, bu nedenle tablonun adı duruma bağlı kalmaz. Ayrıca, istisna işlemlerini kullanmanızı öneririm, hata ayıklamaya yardımcı olur ve programlarınızı daha kararlı hale getirir.

+0

Vay .... Kendimi aptalım. Çok teşekkür ederim. Süre dolduğunda, doğru düğmeye basacağım. –