2015-03-23 5 views
0

Хорошо, поэтому я изучал последний день, и я не могу понять, что черт не так с моим кодом. Я сравнил свой синтаксис с тонны различных источников, и я все еще получаю ошибки при попытке вставить информацию в свою строку. База данных предназначена для простой страницы регистрации, где я извлекаю имя пользователя и пароль и вставляю их в свою базу данных. Код:Ошибка SQLite SQLite вставки строки

public static final int database_version = 1; 
public String CREATE_QUERY = " CREATE TABLE " + " ("+ TableData.TableInfo.USER_NAME +" TEXT, " + TableData.TableInfo.USER_PASS +" TEXT);"; 
public DatabaseOperations(Context context) { 
    super(context, TableData.TableInfo.DATABASE_NAME, null, database_version); 
    Log.d("Database operations", "Database created"); 
} 

@Override 
public void onCreate(SQLiteDatabase sdb){ 

    sdb.execSQL(CREATE_QUERY); 
    Log.d("Database operations", "Table created"); 
} 
@Override 
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) 
{ 

} 
public void putInformation(DatabaseOperations dop,String name,String pass) 
{ 
    SQLiteDatabase SQ = dop.getWritableDatabase(); 
    ContentValues cv = new ContentValues(); 
    cv.put(TableData.TableInfo.USER_NAME, name); 
    cv.put(TableData.TableInfo.USER_PASS, pass); 
    SQ.insert(TableData.TableInfo.TABLE_NAME,null,cv); 
    Log.d("Database operations", "One row inserted"); 
} 

Ошибки я получаю выглядеть следующим образом:

03-22 19:09:45.300 31883-31883/com.example.andy.justalk E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.example.andy.justalk, PID: 31883 
android.database.sqlite.SQLiteException: near "(": syntax error (code 1): , while compiling: CREATE TABLE (user_name TEXT, user_pass TEXT); 
     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889) 
     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) 
     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 

Я фактически обходя страницу регистрации и раньше, но даже тогда, когда я попытался бы войти было бы сказать, что не было Создан столбец user_pass. Я знаю, что есть тонна этих типов вопросов. Я просто не вижу ничего плохого в моем коде. Я даже спросил профессора, и он сказал, что мой вопрос выглядит хорошо. Какие-либо предложения?! Я пропускаю пробел или что-то еще!!!?!?!

ответ

2

Я думаю, что ваше имя таблицы отсутствует

Здесь:

public String CREATE_QUERY = " CREATE TABLE " + " ("+ TableData.TableInfo.USER_NAME +" TEXT, " + TableData.TableInfo.USER_PASS +" TEXT);"; 

Попытка создать имя для таблицы, как это:

public String CREATE_QUERY = " CREATE TABLE users" + " ("+ TableData.TableInfo.USER_NAME +" TEXT, " + TableData.TableInfo.USER_PASS +" TEXT);"; 

Здесь мы имеем документацию SQLite для CREATE TABLE: SQLITE CREATE TABLE Documentation

Сообщите мне, если это работает.

+0

WOW .... СПАСИБО ... Я не могу поверить, что я пропустил это, я чувствую себя глупым. Может быть, мне нужно отдохнуть глазами. ОЧЕНЬ ПОЛЕЗНО!!! – andyb2793

+0

hahah! Вот почему мне нравится StackOverflow! Когда мои глаза потерпят неудачу, у меня будет гораздо больше глаз, чтобы увидеть, где ошибка = D! –