Android 如何使用id获取索引?
我正在尝试获取我的随机id,然后我正在尝试获取WORDTR和WORDEN的索引,但无法这样做。请帮助我Android 如何使用id获取索引?,android,database,sqlite,Android,Database,Sqlite,我正在尝试获取我的随机id,然后我正在尝试获取WORDTR和WORDEN的索引,但无法这样做。请帮助我 public class DatabeseHelper extends SQLiteOpenHelper { public DatabeseHelper(Context c){ super(c,"WORDS",null,1); SQLiteDatabase db =this.getWritableDatabase(); } @Override public void o
public class DatabeseHelper extends SQLiteOpenHelper {
public DatabeseHelper(Context c){
super(c,"WORDS",null,1);
SQLiteDatabase db =this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql="create table WORDS(ID integer primary key autoincrement,WORDTR TEXT,WORDEN TEXT)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS WORDS");
onCreate(db);
}
public Cursor getDataRandom(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from ID ORDER BY RANDOM() LIMIT 1 ",null);
cursor.moveToFirst();
int id = cursor.getInt(cursor.getColumnIndex("ID"));
return cursor;
创建表时,表名为WORDS。但您正在尝试从任何地方都不存在的表名ID获取数据 正确的代码是
public Cursor getDataRandom(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from WORDS ORDER BY RANDOM() LIMIT 1 ",null);
cursor.moveToFirst();
int id = cursor.getInt(cursor.getColumnIndex("ID"));
return cursor;
}
您在代码中有许多错误,请参阅下面的代码和注释 公共类DatabaseHelper扩展了SQLiteOpenHelper{
public DatabeseHelper(Context c){
super(c,"WORDS",null,1);
// SQLiteDatabase db =this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql="create table WORDS(ID integer primarykey autoincrement,WORDTR TEXT,WORDEN TEXT)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS WORDS");
onCreate(db);
}
选择随机数据
public Cursor getDataRandom(){
SQLiteDatabase db = this.getWritableDatabase();
// select * from WORDS not a ID
Cursor cursor = db.rawQuery("select * from WORDS ORDER BY RANDOM() LIMIT 1 ",null);
cursor.moveToFirst();
// id is not used,not need to declare
int id = cursor.getInt(cursor.getColumnIndex("ID"));
// return a id not a cursor
return cursor;
}
公共整型getDataRandom{
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from WORDS ORDER BY RANDOM() LIMIT 1 ",null);
if (cursor.moveToFirst()) {
int id = cursor.getInt(cursor.getColumnIndex("ID"));
} while (cursor.moveToNext());
return id;
@Kaizaki您是否检查过您的数据库是否已创建?@Tauqir我想要一个。从id获取行。但非常感谢您的评论。@PankajMundra yes检查过它的工作情况。@Kaizaki检查并尝试下面的答案。@Kaizaki,如果它不工作,请告诉我。
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from WORDS ORDER BY RANDOM() LIMIT 1 ",null);
if (cursor.moveToFirst()) {
int id = cursor.getInt(cursor.getColumnIndex("ID"));
} while (cursor.moveToNext());
return id;