SQLITEDATABASE ERRORE "SQLITE: (1) VICINO") ": Errore di sintassi"
-
21-12-2019 - |
Domanda
sqlite: (1) vicino ")": errore di sintassi
Non capisco, pensai (e lo faccio) che ho messo ogni spazio (ed ecc.) Necessario
Forse qualcuno potrebbe aiutarmi?
Grazie per il tuo tempo
public class DatabaseHandler extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 3;
private static final String DATABASE_NAME = "rekordai";
private static final String TABLE_REKORDAI = "rekordai";
private static final String KEY_ID = "id";
private static final String KEY_REKORDAI = "rekordai";
public DatabaseHandler(Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_REKORDAI_TABLE = "CREATE TABLE " + TABLE_REKORDAI + " ( "
+ KEY_ID + " INTEGER PRIMARY KEY, " + KEY_REKORDAI + " TEXT," + " ) ";
db.execSQL( CREATE_REKORDAI_TABLE );
}
.
.
Pensavo di aver commesso un errore sopra (metodo ONCreate) ...
Il resto ...
.
@Override
public void onUpgrade(SQLiteDatabase db, int oldV, int newV) {
db.execSQL( "DROP TABLE IF EXISTS " + TABLE_REKORDAI );
onCreate(db);
}
void addRekordas(Rekordas r){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues v = new ContentValues();
v.put(KEY_REKORDAI, r.getRekordas());
db.insert(TABLE_REKORDAI, null, v);
db.close();
}
Rekordas getRekordas(int id){
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.query(TABLE_REKORDAI, new String[]{ KEY_ID, KEY_REKORDAI},
KEY_ID + " = ?", new String[]{ String.valueOf(id)}, null, null, null, null);
if(c != null){
c.moveToFirst();
}
Rekordas r = new Rekordas(Integer.parseInt(c.getString(0), Integer.parseInt(c.getString(1))));
return r;
}
public ArrayList<Rekordas> getAllRekordas(){ // Patikrinti veliau
String selectQuery = "SELECT * FROM " + TABLE_REKORDAI;
ArrayList<Rekordas> rekordaiList = new ArrayList<Rekordas>();
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()){
do{
Rekordas r = new Rekordas();
r.setId(Integer.parseInt(cursor.getString(0)));
r.setRekordas(Integer.parseInt(cursor.getString(1)));
rekordaiList.add(r);
} while(cursor.moveToNext());
}
return rekordaiList;
}
public int upgradeRakordas(Rekordas r){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues v = new ContentValues();
v.put(KEY_REKORDAI, r.getRekordas());
return db.update(TABLE_REKORDAI, v, KEY_ID + " = ?", new String[]{String.valueOf(r.getId())});
}
public void deleteRekordas(Rekordas r){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_REKORDAI, KEY_ID + " = ?", new String[]{String.valueOf(r.getId())});
db.close();
}
public int getRekordaiCount(){
SQLiteDatabase db = this.getReadableDatabase();
String countQuery = "SELECT * FROM " + TABLE_REKORDAI;
Cursor c = db.rawQuery(countQuery, null);
c.close();
return c.getCount();
}
}
.
Grazie ancora! E mi dispiace davvero per tanto codice
Soluzione
Il tuo problema è qui CREATE TABLE SQL COMMAND
+ KEY_ID + " INTEGER PRIMARY KEY, " + KEY_REKORDAI + " TEXT," + " ) ";// remove semi column after TEXT
.
Corretto CREATE TABLE SQL COMMAND
con sotto
String CREATE_REKORDAI_TABLE = "CREATE TABLE " + TABLE_REKORDAI + " ( "
+ KEY_ID + " INTEGER PRIMARY KEY, " + KEY_REKORDAI + " TEXT" + " ) ";
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow