2017-05-16 11 views
0

Ich schrieb einen Code, in dem ich die Daten aus der Datenbank abrufen kann, aber wenn ich es ausführen und versuchen, etwas zu suchen. Die Anwendung stürzt ab, sobald ichAbrufen bestimmter Daten basierend auf ID aus SQLite in ANDROID

drücken Senden
public class search extends AppCompatActivity { 
    Button SearchButton; 
    EditText SearchText; 
    TextView SearchResult; 
    SQLiteDatabase db; 
    String builder; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.search); 
     SearchButton=(Button)findViewById(R.id.searchbutton); 
     SearchText=(EditText)findViewById(R.id.Searchtext); 
     SearchResult=(TextView)findViewById(R.id.SearchCourse); 
     db=this.openOrCreateDatabase("Courses", Context.MODE_PRIVATE,null); 

     SearchButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       int GetID = Integer.valueOf(SearchText.getText().toString()); 
       Cursor TuplePointer = db.rawQuery("Select from Course where ID="+GetID+"",null); 

       TuplePointer.moveToFirst(); 
       String Course = TuplePointer.getString(TuplePointer.getColumnIndex("Course")); 
       SearchResult.setText(Course); 
      } 
     }); 

    } 
} 

Antwort

0

Bitte Versuchen Sie, diese

SQLiteDatabase db = this.getReadableDatabase(); 
    String GetID = SearchText.getText().toString(); 
    Cursor cursor = db.rawQuery("SELECT * FROM Course WHERE ID = ?", new String[]{String.valueOf(GetID)}, null); 
    if (cursor.moveToFirst()) { 
     do { 
      String Course = cursor.getString(cursor.getColumnIndex("Course")); 
      SearchResult.setText(Course); 
     } while (cursor.moveToNext()); 
    } 
+0

Wie kann ich dann in Textview anzeigen? –

+0

cursor.moveToFirst(); String Course = TuplePointer.getString (TuplePointer.getColumnIndex ("Kurs")); SearchResult.setText (Kurs); –

+0

@WaliMuhammadKhubaib bitte überprüfen Sie meine bearbeitete Antwort. –

0

Praxis halten wie unten Code Sie die richtige Debuggen

public void getFirstName(String id) { 
    String sql = "select first_name from basic_info WHERE contact_id="+ id; 
    Cursor c = fetchData(sql); 
    if (c != null) { 
     while (c.moveToNext()) { 

      String FirstName = c.getString(c.getColumnIndex("first_name")); 
      Log.e("Result =>",FirstName); 
     } 
     c.close(); 
    } 
    return data; 
} 

public Cursor fetchData(String sql) { 
    SQLiteDatabase db = this.getWritableDatabase(); 

    return db.rawQuery(sql, null); 
} 
0

schreiben Code in Versuch fangen zuerst. Danach versuchen Sie, die genaue Ausnahme zu erfassen. Sie werden klar sein, was Sie falsch machen.

String selectQuery = "SELECT * FROM " + TABLE_CONTACTS + " Where " + KEY_APP_BOOKINGID + " = " + id; 

     Cursor cursor = db.rawQuery(selectQuery, null); 
1

Ersetzen Sie diese Zeile

Cursor TuplePointer = db.rawQuery("Select from Course where ID=" + GetID + "", null); 

mit

Cursor TuplePointer = db.rawQuery("Select Course from Course where ID=" + GetID + "", null); 

Wo Course ist Ihre Spaltennamen

0

Danke jeder, den ich herausgefunden, was ich auf dem bekommen Spalte falsch zu machen Index Ich zielte Kurs, aber was ich nicht erkannte, ist, dass es kein solches Feld wie cours gab e :)

Verwandte Themen