Опитвам се да изпълня SQL заявка чрез android - и в момента не мога да го направя. Получавам фатална грешка и приложението се затваря при опит за изпълнение на проста заявка, за която съм проверил, че е валидна: SELECT * FROM TblMovie WHERE MovieYear = 1975
Въпреки това - когато се опитам да го направя в приложението си:
Основна дейност:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbhelper = new DBHelper(this);
List<String> list = dbhelper.getData();
TextView textView1 = (TextView) findViewById(R.id.textView1);
TextView textView2 = (TextView) findViewById(R.id.textView2);
textView1.setText(list.get(0));
textView2.setText(list.get(1));
...
DBHelper:
public List<String> getData() {
db = this.getReadableDatabase();
List<String> data = new ArrayList<String>();
Cursor c = db.rawQuery("SELECT * FROM TblMovie WHERE MovieYear = 1975", null);
while (c.moveToNext()) {
data.add(c.getString(0));
data.add(c.getString(1));
}
c.close();
db.close();
return data;
}
Logcat:
05-19 10:24:59.983: E/AndroidRuntime(24736): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.MainActivity}: android.database.sqlite.SQLiteException: no such table: TblMovie (code 1): , while compiling: SELECT * FROM TblMovie WHERE MovieYear = 1975
http://pastebin.com/0mAD87jJ
Също така - намерих тази статия като справка:
Няма такава таблица: (код 1) по време на компилиране: ИЗБЕРЕТЕ * ОТ събитие
Опитах да го стартирам на моя таблет вместо емулатора - пак не работи. Опитах също да изчистя данни - това също не работи. Имам базата данни в моята папка с активи, така че не съм сигурен защо не работи.
РЕДАКТИРАНЕ:
Защо гласуването против? Почти съм сигурен, че това е валиден и не особено написан/документиран/проучен проблем.
no such table: TblMovie
- person Phantômaxx   schedule 19.05.2015onCreate()
във вашия клас SQLiteOpenHelper? - person AdamMc331   schedule 29.05.2015