2015-11-30 2 views
-5

я быть_наст собственная ошибка: android.database.sqlite.SQLiteException: таблица Aerzte не имеет столбца с именем _vornameAndroid: таблица не имеет столбца с именем «имя_столбец»

Но моя таблица имеет столбец _vorname. Я не могу найти ошибку, пожалуйста, помогите мне. Вот код:

private static final int DATABASE_VERSION = 1; 
private static final String DATABASE_NAME = "data.db"; 
private static final String TABLE_Aerzte = "aerzte"; 
private static final String COLUMN_ID = "_id"; 
private static final String COLUMN_Name = "_name"; 
private static final String COLUMN_Passwort = "_passwort"; 
private static final String COLUMN_Vorname = "_vorname"; 

//second table 
private static final String TABLE_Patienten = "patienten"; 
private static final String COLUMN_patID = "_id"; 
private static final String COLUMN_patName = "_name"; 
private static final String COLUMN_patVorname = "_vorname"; 
private static final String COLUMN_patSVNR = "_svnr"; 



//third table 
private static final String TABLE_Werte = "werte"; 
private static final String COLUMN_wertID = "_id"; 
private static final String COLUMN_wertpatName = "_name"; //foreign key -> patient (1:n) beziehung 
private static final String COLUMN_wertDatzeit = "_datzeit"; 
private static final String COLUMN_wertTemperatur = "_temperatur"; 
private static final String COLUMN_wertMessort = "_messort"; 

public MyDBHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { 
    super(context, DATABASE_NAME, factory, DATABASE_VERSION); 
    } 


    //create tables: 
     @Override 
public void onCreate(SQLiteDatabase db) { 
    //tabelle arzt 
    String query = "CREATE TABLE "+TABLE_Aerzte+"("+COLUMN_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+COLUMN_Passwort+" TEXT, "+COLUMN_Name+ " TEXT, " +COLUMN_Vorname+ "TEXT " + ");"; 
    db.execSQL(query); 

    //tabelle patient 
    String query2 = "CREATE TABLE "+TABLE_Patienten+"("+COLUMN_patID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+COLUMN_patName+" TEXT,"+COLUMN_patVorname+" TEXT, "+COLUMN_patSVNR+" LONG" + ");"; 
    db.execSQL(query2); 

    //tabelle wert 
    String query3 = "CREATE TABLE "+TABLE_Werte+"("+COLUMN_wertID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+COLUMN_wertMessort+" TEXT, "+COLUMN_wertTemperatur+ " INTEGER, "+COLUMN_wertDatzeit+" DATETIME, "+COLUMN_wertpatName+" TEXT, FOREIGN KEY" + ");"; 
    db.execSQL(query3); 

} 



//insert 
public void registerPhysician(Fieberwerte fieberwerte) { // public void registerPhysician(etname, etpass, etvorname) 

    SQLiteDatabase db = this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 
    //values.put(COLUMN_ID, 1); 
    values.put(COLUMN_Passwort, fieberwerte.getPasswort()); 
    values.put(COLUMN_Name, fieberwerte.getName()); 
    values.put(COLUMN_Vorname, fieberwerte.getVorname()); 
    //db.insert(TABLE_Aerzte, null, values); 
    db.insertWithOnConflict(TABLE_Aerzte, null, values, SQLiteDatabase.CONFLICT_REPLACE); 
    //db.close(); 
} 

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

+3

не по теме: * Этот вопрос был вызван проблемой, которая больше не может быть воспроизведена или ** простой типографской ошибкой. *** – Selvin

ответ

4

Вы пропустили один пробел в

" TEXT, " +COLUMN_Vorname+ "TEXT " + ");"; 

добавить пустое пространство между именем столбца и введите

" TEXT, " +COLUMN_Vorname+ " TEXT " + ");"; 
+2

Хорошие наблюдения –

+0

спасибо, но он по-прежнему не работает – linuxman

+2

@linuxman Удаление и запуск снова. Позвольте мне сообщить –

0

Ошибка здесь

//tabelle arzt 
String query = "CREATE TABLE "+TABLE_Aerzte+"("+COLUMN_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+COLUMN_Passwort+" TEXT, "+COLUMN_Name+ " TEXT, " +COLUMN_Vorname+ "TEXT " + ");"; 

вы пропустили один пробел после COLUMN_Vorname, положить один пробел перед TEXT.

COLUMN_Vorname+ " TEXT " + " 

после выполнения этого после того, как удалить приложение и попробовать его

+0

i editet пробел перед« ТЕКСТОМ », и я удалил свое приложение и попробовал еще раз, но та же ошибка все еще возникает. – linuxman

+0

как-то произошла ошибка синтаксиса. android.database.sqlite.SQLiteException : near ")": синтаксическая ошибка (код 1): при компиляции: CREATE TABLE werte (_id INTEGER PRIMARY KEY AUTOINCREMENT, _messort TEXT, _temperatur INTEGER, _datzeit DATETIME, _name TEXT, FOREIGN KEY); – linuxman

0

Вы должны создать, как это с помощью внешнего ключа:

String query3 = "CREATE TABLE "+TABLE_Werte+"("+COLUMN_wertID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+COLUMN_wertMessort+" TEXT, "+COLUMN_wertTemperatur+ " INTEGER, "+COLUMN_wertDatzeit+" DATETIME, "+COLUMN_wertpatName+" TEXT," + " FOREIGN KEY ("+COLUMN_wertTemperatur+") REFERENCES "+TABLE_Patienten+"("+COLUMN_patID+"));"; 

Здесь «COLUMN_wertTemperatur» это внешний ключ в создавая таблицу, которая ссылается на первичный ключ таблицы «TABLE_Patienten» с именем столбца «COLUMN_patID».

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