2015-02-11 4 views
1

Я пытаюсь вставить данные в таблицу базы данных сигналы, , который имеет 5 столбцов (id,SSID,BSSID, RSSID, Poloha).Как вставить данные в базу данных SQLite на android

Я получаю ошибку в LogCat:

E/SQLiteLog﹕ (1) table signals has no column named RSSID 

E/SQLiteDatabase﹕ Error inserting BSSID=a0:f3:c1:d4:c0:79 RSSID=49 SSID=AIESECFlat Poloha=PCstol 

android.database.sqlite.SQLiteException: table signals has no column named RSSID (code 1): , while compiling: INSERT INTO signals(BSSID,RSSID,SSID,Poloha) VALUES (?,?,?,?)" 

Я не могу понять, почему он не создает все столбцы. Спасибо за любые советы :)

ГЛАВНОЕ АКТИВНОСТИ

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     DatabaseHandler db = new DatabaseHandler(this); 

     // Inserting Contacts 
     db.addSignals(new Signals("AIESECFlat","a0:f3:c1:d4:c0:79","49","PCstol")); 
} 

DatabaseHandler класса

public class DatabaseHandler extends SQLiteOpenHelper{ 

    // All Static variables 
    private static final int DATABASE_VERSION = 1; // Database Version 
    // Database Name 
    private static final String DATABASE_NAME = "localizationManager"; 
    // Signals table name 
    private static final String TABLE_SIGNALS = "signals"; 

    // Signals Table Columns names 
    private static final String KEY_ID = "id"; 
    private static final String KEY_SSID = "SSID"; 
    private static final String KEY_BSSID = "BSSID"; 
    private static final String KEY_RSSID = "RSSID"; 
    private static final String KEY_Poloha = "Poloha"; 

    public DatabaseHandler(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 
    // Creating Tables 
    @Override 
    public void onCreate(SQLiteDatabase db){ 
     String CREATE_SIGNALS_TABLE = "CREATE TABLE "+TABLE_SIGNALS +"(" 
       + KEY_ID + " INTEGER PRIMARY KEY," 
       + KEY_SSID + " TEXT," 
       + KEY_BSSID + " TEXT" 
       + KEY_RSSID + " TEXT" 
       + KEY_Poloha + " TEXT" 
       + ")"; 
     db.execSQL(CREATE_SIGNALS_TABLE); 
    } 
    // Upgrading database 
    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ 
     // Drop older table if existed 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_SIGNALS); 

     // Create tables again 
     onCreate(db); 
    } 

    public void addSignals(Signals signals){ 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put(KEY_SSID,signals.get_SSID()); //signal SSID 
     values.put(KEY_BSSID, signals.get_BSSID()); 
     values.put(KEY_RSSID, signals.get_RSSID()); 
     values.put(KEY_Poloha, signals.get_poloha()); 

     //Inserting Row 
     db.insert(TABLE_SIGNALS, null, values); 
     db.close(); //closing database connetion 
    } 
} 

класс сигнала Сигналы общественного класса {

//private variables 
int _id; 
String _SSID; 
String _BSSID; 
String _RSSID; 
String _poloha; 

//Empty constructor 
public Signals(){ } 

//constructor 
public Signals(String _SSID, String _BSSID, String _RSSID, String _poloha) { 
    this._SSID = _SSID; 
    this._BSSID = _BSSID; 
    this._RSSID = _RSSID; 
    this._poloha = _poloha; 
} 
public String get_SSID() { 
     return _SSID; 
    } 

public String get_BSSID() { 
     return _BSSID; 
    } 

public String get_RSSID() { 
     return _RSSID; 
    } 

public String get_poloha() { 
     return _poloha; 
    } 

ответ

0

Добавить запятые между вашими требованиями колонок:

+ KEY_BSSID + " TEXT," 
+ KEY_RSSID + " TEXT," 

и удалить приложение так, чтобы помощник базы данных onCreate() повторяются.

0

Ваша ошибка возникает при попытке создать таблицу. Вам не хватает запятой.

Я установил ее для вас:

String CREATE_SIGNALS_TABLE = "CREATE TABLE "+TABLE_SIGNALS +"(" 
    + KEY_ID + " INTEGER PRIMARY KEY," 
    + KEY_SSID + " TEXT," 
    + KEY_BSSID + " TEXT," 
    + KEY_RSSID + " TEXT," 
    + KEY_Poloha + " TEXT" 
    + ")"; 
Смежные вопросы