Я создаю приложение для Android и использую базу данных с ним. Одна из таблиц я использую с ним семестр таблица, которая создается с помощью следующего оператора:Исключение Runtime при создании таблицы SQLite
final String createSemesterTable =
"CREATE TABLE IF NOT EXISTS" + semesterTable +
"(" + _id + " INTEGER PRIMARY KEY AUTOINCREMENT," +
semesterName + " TEXT," +
isCurrent + " INTEGER," +
GPA + " REAL" + ");";
простой версии:
CREATE TABLE IF NOT EXISTS Semesters(
_id INTEGER PRIMARY KEY AUTOINCREMENT,
semester_name TEXT,
is_current TEXT
GPA REAL);
В моей основной деятельности я стараюсь создать Cursor Адаптер, который ссылается на представление списка, используя данные из базы данных для заполнения элементов.
Вот часть моего метода OnCreate (..):
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
dbase = new DBHelper(getBaseContext());
sqldbase = dbase.getWritableDatabase();
ListView list = (ListView)findViewById(R.id.semesterList);
String columns[] = {DBHelper._id, DBHelper.semesterName, DBHelper.isCurrent, DBHelper.GPA};
String from[] = {DBHelper.semesterName, DBHelper.GPA};
int to[] = {R.id.semesterName, R.id.semesterGPA};
Cursor cursor = sqldbase.query(DBHelper.semesterTable, columns, null, null, null, null, null);
adap = new SimpleCursorAdapter(getBaseContext(),R.layout.semester_list_view,cursor, columns, to);
list.setAdapter(adap);
}
Когда я компилирую/бежать, я получаю следующее сообщение, однако:
07-06 20:34:25.950: E/AndroidRuntime(2825): java.lang.RuntimeException: Unable to start activity
android.database.sqlite.SQLiteException: no such column: _id (code 1): ,
while compiling: SELECT _id, Semester_Name, Is_Current, GPA FROM Semesters
Я не вижу, что неверно, потому что я использую столбец _id (который фактически требуется SQLite). Кроме того, почему требуется столбец _id (по этому имени)? Если у меня есть несколько таблиц, могу ли я задать разные имена для своих первичных ключей или будет необходимо для каждого?
Спасибо.
Как насчет добавления пробела после «EXISTS»? Подобно '" ... EXISTS "+ semesterTable ...' –
ya я понял, что из ho .. – iamseiko