2012-03-12 2 views
0

найден Ошибка при создании простой SQLite databas Приложения для AndroidПростой Android базы данных SQLite код Inserstion

**03-12 12:57:39.635: E/Database(333): Failure 1 
(near "tablefriends": syntax error) on 0x29b2b0 
when preparing 'create tablefriends(_id integer 
primary key autoincrement,name text not null,address text); 

, когда я пишу этот код в моем классе деятельности, мое заявление даже не бежать. но если я удалил этот код из класса активности, мое приложение запустить, но это дает исключение, когда я вставить данные в базу данных

protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    FriendsDataSource s=new FriendsDataSource(this); 
    s.closedatabase(); 

} 

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    FriendsDataSource s=new FriendsDataSource(this); 
    s.opendatabase(); 
} 

public static final String FRIENDS_TABLE_CREATE_STMT="create table"+TABLE_NAME+ 
     "("+COLUMN_ID+" integer primary key autoincrement,"+ 
     COLUMN_FRIEND_NAME+" text not null,"+COLUMN_ADDRESS+" text);"; 
+0

Я хотел бы добавить, что вам лучше создать экземпляр объекта-сфера применения '' FriendsDataSource' в onResume' и закрыть базу данных этого экземпляра вместо создания двух экземпляров, как 'mFriendsSource = новый FriendsDataSource (this); 'где' mFriendsSource' является членом класса. –

ответ

2

У вас есть проблемы с расстоянием, как это часто бывает, когда конкатенации строк;

"create table" + TABLE_NAME // becomes "create tablefriends" 

Когда в конечном итоге с странными ошибками SQL, это всегда хорошая идея, чтобы посмотреть на/проследить сгенерированный код так, чтобы он соответствовал ожидаемому. В этом случае ваше сообщение об ошибке прямо в верхней части вопроса показывает ошибку.

Правильная версия должна быть;

"create table " + TABLE_NAME // becomes "create table friends" 
+0

все еще дает мне исключение, когда я нажимаю кнопку «добавить друга» –

+0

@ZaidIqbal. Вы не показываете какой-либо код или исключение для «Добавить друга» в этом вопросе, вы можете начать новый вопрос со всей информацией, которую вы иметь на этом. –

+0

03-12 16: 56: 25.652: E/Database (334): Ошибка 1 (рядом с «tablefriends»: синтаксическая ошибка) на 0x29b268 при подготовке «create tablesfriends» (автоинкремент целочисленного первичного ключа _id, текст названия не равен null, текст адреса) ;». –