アンドロイドスタジオにSQLiteデータベースでアプリを書いてみたい。データベーステーブルの1つの列はスピナーで読み出されます。しかし、私は次のエラーでアプリがクラッシュし、スピナーで活動を開始しようとすると:ここsqliteエラーのアンドロイドスタジオ
Error Code : 1 (SQLITE_ERROR) Caused By : SQL(query) error or missing database. (near "FROM": syntax error (code 1): , while compiling: SELECT Gruppe , FROM Kunden_list)
私のクラスのいずれかのコード。私はエラーがこのクラスにあると思うか、私は間違っていますか?
package com.example.katjarummler.hundeschule_petra_bennemann;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import java.util.ArrayList;
import java.util.List;
public class HundeschuleMemoDBHelper extends SQLiteOpenHelper {
private static final String LOG_TAG =
HundeschuleMemoDBHelper.class.getSimpleName();
public static final String DB_NAME = "Kunden_list.db";
public static final int DB_VERSION = 6;
public static final String TABLE_KUNDEN_LIST = "Kunden_list";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_KName = "Name";
public static final String COLUMN_GNAME = "Gruppe";
public static final String COLUMN_KTELEFON = "Telefon";
public static final String COLUMN_HUND = "Hund";
public static final String COLUMN_BEGINN = "Beginn";
public static final String COLUMN_CHECKED = "checked";
public static final String SQL_CREATE = "CREATE TABLE " +
TABLE_KUNDEN_LIST +
"(" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_KName + " TEXT NOT NULL, " +
COLUMN_GNAME + " TEXT NOT NULL, " +
COLUMN_KTELEFON + " TEXT NOT NULL, " +
COLUMN_HUND + " TEXT NOT NULL, " +
COLUMN_BEGINN + " TEXT NOT NULL, " +
COLUMN_CHECKED + " BOOLEAN NOT NULL DEFAULT 0);";
public static final String SQL_DROP = "DROP TABLE IF EXISTS " +
TABLE_KUNDEN_LIST;
public HundeschuleMemoDBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
Log.d(LOG_TAG, "DBHelper hat die Datenbank: " + getDatabaseName() +
" erzeugt.");
}
//Die onCreate-Methode wird nur aufgerufen, falls die Datenbank noch
nicht existiert
public void onCreate(SQLiteDatabase db) {
try{
Log.d(LOG_TAG, "Die Tabelle wird mit SQL-Befehl: " + SQL_CREATE
+ " angelegt.");
db.execSQL(SQL_CREATE);
}
catch(Exception ex){
Log.e(LOG_TAG, "Fehler beim Anlegen der Tabelle: " +
ex.getMessage());
}
}
// Die onUpgrade-Methode wird aufgerufen, sobald die neue
Versionsnummer höher
// als die alte Versionsnummer ist und somit ein Upgrade notwendig wird
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
Log.d(LOG_TAG, "Die Tabelle mit Versionsnummer " + oldVersion + "
wird entfernt.");
db.execSQL(SQL_DROP);
onCreate(db);
}
public List<HundeschuleMemoKunden> getAll(){
SQLiteDatabase database = this.getReadableDatabase();
String selectQuery = "SELECT " +
COLUMN_GNAME + " , " +
" FROM " + TABLE_KUNDEN_LIST;
List<HundeschuleMemoKunden> gruppenList = new
ArrayList<HundeschuleMemoKunden>();
Cursor cursor = database.rawQuery(selectQuery, null); //The mark
of the error is here
//looping through all rows and adding to list
if(cursor.moveToFirst()){
do{
HundeschuleMemoKunden gruppe = new
HundeschuleMemoKunden("kName", "gName", "kTelefon", "hName", "beginn");
gruppe.setgName(cursor.getString(cursor.getColumnIndex
(this.COLUMN_GNAME))
);
gruppenList.add(gruppe);
}while(cursor.moveToNext());
}
cursor.close();
database.close();
return gruppenList;
}
}
選択したクエリが間違っています。おそらく、 '' FROM'の前に '' -comma ''の後ろにある列を見逃したでしょう。 – user8