【发布时间】:2014-12-31 11:31:58
【问题描述】:
您好,我在将数据添加到数据库时遇到此错误,但我不知道为什么。我认为问题出在 addData()-Method 中,但到目前为止我没有尝试修复它。
“E/SQLiteLog:(1)在“Aktivität”附近:语法错误”
还有:
"android.database.sqlite.SQLiteException: 在 "Aktivität" 附近: 语法错误 (代码 1): , 编译时: INSERT INTO MedDatenTabelle(Schmerz,Broteinheiten,Messzeit,Wasser,Diastole,Müdigkeit,Puls,Symptom,letzte Aktivität ,Gewicht,Kalorien,Bemerkungen,Systole,Temperatur,Blutzucker) 值 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
public class DatabaseHandler extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME= "MedDatenManager";
private static final String TABLE_MEDDATEN = "MedDatenTabelle";
private static final String KEY_ID = "id";
private static final String KEY_SYST = "Systole";
private static final String KEY_DIAST = "Diastole";
private static final String KEY_PULS = "Puls";
private static final String KEY_BLUTZ = "Blutzucker";
private static final String KEY_TEMP = "Temperatur";
private static final String KEY_GEW = "Gewicht";
private static final String KEY_KAL = "Kalorien";
private static final String KEY_BE ="Broteinheiten";
private static final String KEY_WASSER = "Wasser";
private static final String KEY_TIME = "Messzeit";
private static final String KEY_SCHMERZ = "Schmerz";
private static final String KEY_MUD = "Müdigkeit";
private static final String KEY_AKTI = "letzte Aktivität";
private static final String KEY_SYMP = "Symptom";
private static final String KEY_BEM = "Bemerkungen";
public DatabaseHandler(Context context){
super(context,DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
String CREATE_TABLE_MEDDATEN = "CREATE TABLE " + TABLE_MEDDATEN + " ("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_SYST + " TEXT,"
+ KEY_DIAST + " TEXT," + KEY_PULS + " TEXT," + KEY_BLUTZ + " TEXT,"
+ KEY_TEMP + " TEXT," + KEY_GEW + " TEXT," + KEY_KAL + " TEXT,"
+ KEY_BE + " TEXT," + KEY_WASSER + " TEXT," + KEY_TIME + " TEXT,"
+ KEY_SCHMERZ + " TEXT," + KEY_MUD + " TEXT," + KEY_AKTI + " TEXT,"
+ KEY_SYMP + " TEXT," + KEY_BEM + " TEXT" + " )";
database.execSQL(CREATE_TABLE_MEDDATEN);
}
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
database.execSQL("DROP TABLE IF EXISTS " + TABLE_MEDDATEN);
onCreate(database);
}
public void addData (MEDDATEN meddaten){
SQLiteDatabase database = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_SCHMERZ,meddaten.getSchmerz());
values.put(KEY_BE,meddaten.getBroteinheiten());
values.put(KEY_TIME,meddaten.getMesszeit());
values.put(KEY_WASSER,meddaten.getWasser());
values.put(KEY_MUD,meddaten.getMüdigkeit());
values.put(KEY_DIAST,meddaten.getDiastole());
values.put(KEY_PULS,meddaten.getPuls());
values.put(KEY_SYMP,meddaten.getSymptome());
values.put(KEY_AKTI,meddaten.getLetzteAkt());
values.put(KEY_GEW,meddaten.getGewicht());
values.put(KEY_KAL,meddaten.getKalorien());
values.put(KEY_BEM,meddaten.getBemerkungen());
values.put(KEY_TEMP,meddaten.getTemperatur());
values.put(KEY_SYST,meddaten.getSystole());
values.put(KEY_BLUTZ,meddaten.getBlutzucker());
database.insert(TABLE_MEDDATEN, null, values);
database.close();
}
}
}
【问题讨论】:
-
发布你的整个 logcat 和调用 addData 的方法。
-
更改列名 KEY_AKTI = "letzte_Aktivität" 而不是 "letzte Aktivität"。
-
@JaiRajesh 奇怪的是,这正是我在你的评论前 3 分钟在我的回答中写的。
标签: android database sqlite android-studio syntax-error