Android 如何使用id获取索引?

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

我正在尝试获取我的随机id,然后我正在尝试获取WORDTR和WORDEN的索引,但无法这样做。请帮助我

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;