2016-03-01 2 views
0

я получаю следующую ошибкуошибка синтаксиса (код 1):, при компиляции:

android.database.sqlite.SQLiteException: near "TEXT": syntax error (code 1): , while compiling: CREATE TABLE contacts (name TEXT, phone INTEGER, email TEXT 

Конкретная строка кода, генерирующего ошибки является

sqLiteDatabase.execSQL("CREATE TABLE contacts (name TEXT, phone INTEGER, email TEXT"); 

Вот полный код:

package ca.truewebdev.sqlitetest1; 

import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    SQLiteDatabase sqLiteDatabase = getBaseContext().openOrCreateDatabase("sqlite-test-1.db", MODE_PRIVATE, null); 
    sqLiteDatabase.execSQL("CREATE TABLE contacts (name TEXT, phone INTEGER,email TEXT"); 
    sqLiteDatabase.execSQL("INSERT INTO contacts VALUES('tim',6456789,'[email protected]/com'"); 
    sqLiteDatabase.execSQL("INSERT INTO contacts VALUES('chris',324243,'[email protected]/com'"); 

    //set up to be able to access data 
    Cursor query = sqLiteDatabase.rawQuery("SELECT * FROM contacts", null); 

    //check to see if any data, moves to first record or returns false if none 
    if (query.moveToFirst()) { 
     // cycle through all records 
     String name = query.getString(0); 
     int phone = query.getInt(1); 
     String email = query.getString(2); 
     Toast.makeText(getBaseContext(), "Name = " + name + " phone = " + phone + 
       " email = " + email, Toast.LENGTH_LONG).show(); 

    }else{ 
     Toast.makeText(getBaseContext(), "Error retrieving data", Toast.LENGTH_LONG).show(); 
    } 

} 
} 

Почему я получаю эту ошибку? Я следую вместе с учебником. Я был уверен, что правильно набрал все.

+0

Отсутствуют закрывающие круглые скобки в запросах CREATE и INSERT. –

ответ

1

изменение этой линии

sqLiteDatabase.execSQL("CREATE TABLE contacts (name TEXT, phone INTEGER, email TEXT"); 

в

sqLiteDatabase.execSQL("CREATE TABLE contacts (name TEXT, phone INTEGER, email TEXT)"); 
+0

Команды вставки требуют того же исправления. –

0

У вас не хватает закрывающей скобки после "текст сообщения". Попробуйте:

sqliteDatabase.execSQL («СОЗДАТЬ ТАБЛИЦЫ контакты (название ТЕКСТ, телефон INTEGER, email TEXT)»);

Смежные вопросы