Android StudioでSQLiteを使用してクエリを作成しようとしていますが、大きな問題があります。クエリ内のwhere句
package com.example.lyubo.database;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by LYUBO on 2017/08/07.
*/
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Student.db";
public static final String TABLE_NAME = "student_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "NAME";
public static final String COL_3 = "SURNAME";
public static final String COL_4 = "MARKS";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,SURNAME TEXT,MARKS INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
onCreate(db);
}
public Cursor getAllData() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("select * from "+TABLE_NAME + " WHERE " + COL_2 + " = Mike",null);
return res;
}
}
私が知っている問題は、私のクエリ内であるという事実のために:私はここにselect * from Student.db where name = Mike
にしようとしています
は 私のコードの抜粋です。私は何かが不足しているかどうかはわかりません。
助けてください。ありがとうございました。
あなたは文字列の比較のために引用する必要があります... = 'マイクの – ednincer
OMG!私はちょうど2時間を無駄にした。 ありがとうございました。問題が解決しました! – Lyubomir
ユーザーの入力に基づいて表示したい場合は、マイクの部分を置き換えて、次のように記述します: カーソルres = db.rawQuery( "select * from" + TABLE_NAME + "WHERE" + COL_2 + "=" + mainAct.editName.getText()。toString()、null); – Lyubomir