public class MyDBHandler extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "winkelskortrijk.db";
private static final String TABLE_USERS = "users";
private static final String TABLE_FAVOURITES = "favorieten";
public static final String COLUMN_ID = "id";
public static final String COLUMN_USERNAME = "username";
public static final String COLUMN_PASSWORD = "password";
public static final String COLUMN_ID2 = "id2";
public static final String COLUMN_NAME = "naam";
public static final String COLUMN_STRAAT = "straat";
public static final String COLUMN_HUISNR = "nr";
public static final String COLUMN_POSTCODE = "postcode";
public static final String COLUMN_DEELGEMEENTE = "deelgemeente";
public static final String COLUMN_GEMEENTE = "gemeente";
public static final String COLUMN_ADRES = "adres";
public MyDBHandler(Context context, String name,
SQLiteDatabase.CursorFactory factory, int version) {
super(context, DATABASE_NAME, factory, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_USERS_TABLE = "CREATE TABLE " +
TABLE_USERS + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ COLUMN_USERNAME + " TEXT,"
+ COLUMN_PASSWORD + " TEXT"
+ ")";
db.execSQL(CREATE_USERS_TABLE);
String CREATE_FAVOURITES_TABLE = "CREATE TABLE " +
TABLE_FAVOURITES + "("
+ COLUMN_ID2 + " INTEGER PRIMARY KEY,"
+ COLUMN_NAME + " TEXT,"
+ COLUMN_STRAAT + " TEXT,"
+ COLUMN_HUISNR + " INTEGER,"
+ COLUMN_POSTCODE + " INTEGER,"
+ COLUMN_DEELGEMEENTE + " TEXT,"
+ COLUMN_GEMEENTE + " TEXT,"
+ COLUMN_ADRES + " TEXT,"
+ COLUMN_ID + " INT, "
+ "FOREIGN KEY(" + COLUMN_ID + ") REFERENCES "
+ TABLE_USERS + "(id) " + ")";
db.execSQL(CREATE_FAVOURITES_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion) {
}
public User findUser(User user) {
String selectQuery = "SELECT * FROM " + TABLE_USERS + " WHERE "
+ COLUMN_USERNAME + " = " + user.getUsername();
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
User findUser = new User();
if (cursor.moveToFirst()) {
cursor.moveToFirst();
findUser.setUserName(cursor.getString(1));
findUser.setPassword(cursor.getString(2));
cursor.close();
} else {
findUser = null;
}
db.close();
return findUser;
}
}
Когда я пытаюсь запустить метод findUser(User user)
, я не получить SqlException нет такой колонки: Gebruikersnaam (примечание: Gebruikersnaam переменная в user.getUserName(), я хочу эту функцию, чтобы вернуться пользователь, если он будет найден, или нуль, если он неПолучение SQLiteException: нет такой столбец
Что я делаю не так, и есть лучший способ использовать запросы
Краш журнала:.?
07-25 15 : 22: 42.345 32264-32264/com.example.hoofdgebruiker.winkelskortrijk Х/AndroidRuntime: неустранимые: Основной процесс: com.example.hoofdgebruiker.winkelskortrijk, ПИД: 32264 android.database.sqlite.SQLiteException: нет такой колонки: Gebruikersnaam (код 1):, при компиляции: SELECT * FROM пользователей, где имя пользователя = Gebruikersnaam в android.database.sqlite.SQLiteConnection.nativePrepareStatement (Native Method) в android.database.sqlite.SQLiteConnection.acquirePreparedStatement (SQLiteConnection. java: 887) по адресу android.database.sqlite.SQLiteConnection.prepare (SQLiteConnection.java:498) на android.database.sqlite.SQLiteSession.prepare (SQLiteSession.java:588) на android.database.sqlite.SQLiteProgram. (SQLiteProgram.java : 58) на android.database.sqlite.SQLiteQuery (SQLiteQuery.java:37) на android.database.sqlite.SQLiteDirectCursorDriver.query (SQLiteDirectCursorDriver.java:44) на android.database.sqlite.SQLiteDatabase.. rawQueryWithFactory (SQLiteDatabase.java:1316) по адресу android.database.sqlite.SQLiteDatabase.rawQuery (SQLiteDataba se.java:1255) на com.example.hoofdgebruiker.winkelskortrijk.Database.MyDBHandler.findUser (MyDBHandler.java:78) на com.example.hoofdgebruiker.winkelskortrijk.Homepage.MainActivity.register (MainActivity.java: 49) на com.example.hoofdgebruiker.winkelskortrijk.Homepage.Register $ 1.onClick (Register.java:47) в android.view.View.performClick (View.java:5198) в android.view.View $ PerformClick.run (View.java:21147) на android.os.Handler.handleCallback (Handler.java:739) на android.os.Handler.dispatchMessage (Handl er.java:95) на android.os.Looper.loop (Looper.java:148) на android.app.ActivityThread.main (ActivityThread.java:5417) на java.lang.reflect.Method.invoke (Нативный метод) по адресу com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main (ZygoteInit.Java: 616)
добавьте полный журнал врезаться – USKMobility
@USKMobility Done – user3117628
Я посоветовал вам написать полную строку sql для регистрации перед выполнением, чтобы проверить ее – Vyacheslav