列名をキーとして行を読み込もうとしていますが、何とか取得できません。SQLiteデータベースからデータを読み取るにはどうすればよいですか?
例は、私が
を文字列「名前」を入力し、リストはただのListView
に「1」を示し、ここで私の挿入コードは
public void insertStudent(String name, int faculty){
ContentValues cv = new ContentValues();
cv.put("name", name);
cv.put("faculty", faculty);
mSqliteDatabase.insert("students", null, cv);
}
だとここで私はデータを照会方法は次のとおりです。
public List<String> selectAllEngg(){
List<String> allStudents = new ArrayList<>();
Cursor cursor = mSqliteDatabase.query("students", new String[]{"faculty"}, null, null, null, null, null);
if(cursor != null && cursor.moveToFirst()){
do {
allStudents.add(cursor.getString(0));
} while (cursor.moveToNext());
}
return allStudents;
}
package test;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.List;
public class MyDBAdapter {
public static final String DATABASE_NAME = "data";
private Context mContext;
private MyDBHelper mDbHelper;
private SQLiteDatabase mSqliteDatabase;
private int DATABASE_VERSION = 1;
public MyDBAdapter(Context context){
this.mContext = context;
mDbHelper = new MyDBHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void open(){
mSqliteDatabase = mDbHelper.getWritableDatabase();
}
public class MyDBHelper extends SQLiteOpenHelper{
public MyDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version){
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db){
String query = "CREATE TABLE students(id integer primary key autoincrement, name text, faculty integer);";
db.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
String query = "DROP TABLE IF EXISTS students;";
db.execSQL(query);
onCreate(db);
}
}
public void insertStudent(String name, int faculty){
ContentValues cv = new ContentValues();
cv.put("name", name);
cv.put("faculty", faculty);
mSqliteDatabase.insert("students", null, cv);
}
// public List<String> selectAllStudents(){
// List<String> allStudents = new ArrayList<>();
// Cursor cursor = mSqliteDatabase.query("students", null, null, null, null, null, null);
// if(cursor != null && cursor.moveToFirst()){
// do {
// allStudents.add(cursor.getString(1));
// } while (cursor.moveToNext());
// }
// return allStudents;
// }
public List<String> selectAllEngg(){
List<String> allStudents = new ArrayList<>();
Cursor cursor = mSqliteDatabase.query("students", new String[]{"faculty"}, null, null, null, null, null);
if(cursor != null && cursor.moveToFirst()){
do {
if(cursor.getString(cursor.getColumnIndex("faculty")).equals("1")){
allStudents.add(cursor.getString(cursor.getColumnIndex("name")));
}
// allStudents.add(cursor.getString(0));
} while (cursor.moveToNext());
}
return allStudents;
}
public void deleteAllEngineers(){
mSqliteDatabase.delete("students", null, null);
}
}
DB javaファイルを追加しました。 cursor.getString(0)
を使用して
[Androidでsqliteデータベースからデータを取得してTextViewで表示する方法](https://stackoverflow.com/questions/12298835/how-to-retrieve-data-from-sqlite-database-in -android・表示・それ・イン・TextViewには、それがどのように働くか) – imGs