2012-02-11 1 views
0

Я создаю приложение для ввода значений входных строк из EditText в базу данных SQLite. При запуске приложения через симулятор сообщение об ошибке logcat принимается, когда база данных будет создана изначально. Сообщение об ошибке logcat указано ниже.Ошибка «создать таблицу, если не существует» в Eclipse

01-23 16: 47: 39.613: E/Database (1386): Ошибка 1 (около «existinfoTable»: синтаксическая ошибка) на 0x1392b8 при подготовке «create table if not existinfoTable» (первичный ключ _idinterger, sNametext не null, wUrltext не null, uNametext не null, pWordtext not null); '.

Метод OnCreate, о котором идет речь, приведен ниже. Я не уверен, какая синтаксическая ошибка вызывает проблему. любая помощь будет оценена по достоинству.

public void onCreate(SQLiteDatabase db) { 
    String sqlDataStore = "create table if not exist" + 
     TABLE_NAME_INFOTABLE + "("+ BaseColumns._ID + "interger primary key autoincrement," 
     + COLUMN_NAME_SITE + "text not null," 
     + COLUMN_NAME_ADDRESS + "text not null," 
     + COLUMN_NAME_USERNAME + "text not null," 
     + COLUMN_NAME_PASSWORD + "text not null),"; 
    db.execSQL(sqlDataStore); 
} 

ответ

10

Судя по ней, вы mispelled «целое», и это выглядит, как вам нужно пространство перед «целое», после того, как «существует» (я думаю, что это должно быть «существует») и перед «(» . Так ....

String sqlDataStore = "create table if not exists " + 
     TABLE_NAME_INFOTABLE + " ("+ BaseColumns._ID + " integer primary key autoincrement," 
       + COLUMN_NAME_SITE + "text not null," 
       + COLUMN_NAME_ADDRESS + "text not null," 
       + COLUMN_NAME_USERNAME + "text not null," 
       + COLUMN_NAME_PASSWORD + "text not null)"; 

Вы также можете опустить «» или „;“ в конце выражения

+0

также необходим пробел перед каждым 'текста не null' – Squonk

+0

благодарственных для ловли. но я все еще получаю ту же ошибку. Вот копия моего logcat. – user1165694

+0

01-23 18: 43: 03.017: E/AndroidRuntime (1578): android. database.sqlite.SQLiteException: рядом с «существует»: синтаксическая ошибка: создать таблицу, если не существует infoTable (автоинкремент первичного ключа _idinteger, sName text not null, текст wUrl не null, uName текст не null, текст в тексте не пуст), 01- 23 18: 43: 03.017: E/AndroidRuntime (1578): \t на android.database.sqlite.SQLiteDatabase.native_execSQL (собственный метод) 01-23 18: 43: 03.017: E/AndroidRuntime (1578): \t на android. database.sqlite.SQLiteDatabase.execSQL (SQLiteDatabase.java:1610) – user1165694