M
Madin3
Neues Mitglied
- 0
Hallo,
ich stehe vor folgendem Problem.
Ich möchte eine SQLite Tabelle bestehend aus 6 spalten erstellen diese bestehen aus Benutzereingaben (Strings, Datum und Integer) , das klappt auch soweit ganz gut solange ich den TABLE_NAME vorab im Programm festlege.
Wie gehe ich aber vor wenn ich auch den TABLE_NAME vorab durch eine Benutzereingabe abfrage, sagen wir einmal gibt der Benutzer TABLE_NAME A1 ein und ein anderes mal EME12.
Wenn das erste mal eine Tabelle erstellt wird mit der oben genannten A1 funktioniert das ganze auch, doch sobald ich einen anderen Tabellenname eingeben bekomme ich eine exception.
Hier mal noch mein code:
ich stehe vor folgendem Problem.
Ich möchte eine SQLite Tabelle bestehend aus 6 spalten erstellen diese bestehen aus Benutzereingaben (Strings, Datum und Integer) , das klappt auch soweit ganz gut solange ich den TABLE_NAME vorab im Programm festlege.
Wie gehe ich aber vor wenn ich auch den TABLE_NAME vorab durch eine Benutzereingabe abfrage, sagen wir einmal gibt der Benutzer TABLE_NAME A1 ein und ein anderes mal EME12.
Wenn das erste mal eine Tabelle erstellt wird mit der oben genannten A1 funktioniert das ganze auch, doch sobald ich einen anderen Tabellenname eingeben bekomme ich eine exception.
Error inserting Color=Hellblau Date=September 25 TeacherName= Subject=dd Typ=1
android.database.sqlite.SQLiteException: no such table: nocheinetodos (code 1): , while compiling: INSERT INTO nocheinetodos(Color,Date,TeacherName,Subject,Typ) VALUES (?,?,?,?,?)
Hier mal noch mein code:
Code:
package de.madin.mssdadas;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class SQLite extends SQLiteOpenHelper {
private static final String LOG_TAG = SQLite.class.getSimpleName();
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "Schulaufgabenplaner";
private static final String TABLE_TODO = "nocheinetodos";
public String TABLE_NAME = "Klasse";
public static final String COL_1 = "_id";
public static final String COL_2 = "Date";
public static final String COL_3 = "Subject";
public static final String COL_4 = "TeacherName";
public static final String COL_5 = "Typ";
public static final String COL_6 = "Color";
public String SQL_CREATE =
"Create table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, Date DATE, Subject TEXT, TeacherName TEXT, Typ INTEGER, Color TEXT);";
private static final String CREATE_TABLE_TODO = "CREATE TABLE "
+ TABLE_TODO + "(ID INTEGER PRIMARY KEY AUTOINCREMENT, Date DATE, Subject TEXT, TeacherName TEXT, Typ INTEGER, Color TEXT);";
public SQLite(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
//try {
// Log.d(LOG_TAG, "Die Tabelle wird mit SQL-Befehl: " + SQL_CREATE + " angelegt.");
db.execSQL(SQL_CREATE);
db.execSQL(CREATE_TABLE_TODO);
// } catch (Exception ex) {
// Log.e(LOG_TAG,"Fehler beim Anlegen der Tabelle: " + ex.getMessage());
// }
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public boolean setData(String sclass, String subject, String teacher, String color, String date, int typ) {
SQLiteDatabase db = this.getReadableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2, date);
contentValues.put(COL_3, subject);
contentValues.put(COL_4, teacher);
contentValues.put(COL_5, typ);
contentValues.put(COL_6, color);
long result = db.insert(TABLE_NAME, null, contentValues);
if (result == -1)
return false;
else
return true;
}
}