从数据库列获取值

时间:2013-09-12 20:59:08

标签: android mysql sqlite cursor android-cursor

我试图获取列threadid的值,其中id(唯一)等于我发送给getthreadid函数的id .threadid包含数据类型long的值,但我不知道为什么我的应用程序崩溃这样做,请帮助,提前谢谢。

long id;
long threadid = datasource.getthreadid(id);
Toast.makeText(getActivity(), String.valueOf(threadid), Toast.LENGTH_SHORT).show();

public long getthreadid(long id)
{
    String ide = String.valueOf(id);
    String queryz = "SELECT " + "," + MySQLiteHelper.COLUMN_THREADID 
        + " FROM " + MySQLiteHelper.TABLE_NAME 
        + " WHERE " + MySQLiteHelper.COLUMN_ID + "=" + ide;
    Cursor cursor = database.rawQuery(queryz, null);
    long threadid = cursor.getLong(cursor.getColumnIndex("threadid"));
    return threadid;
}

我的数据库创建查询是:

static final String DATABASE_CREATE = "create table "+"message"+
            "( " +"id"+" integer primary key autoincrement,"+ "threadid long,parentid integer,message  text not null,messagestatus text); ";

1 个答案:

答案 0 :(得分:0)

我认为您的查询错误

 String queryz = "SELECT " + "," + MySQLiteHelper.COLUMN_THREADID 
        + " FROM " + MySQLiteHelper.TABLE_NAME 
        + " WHERE " + MySQLiteHelper.COLUMN_ID + "=" + ide;

预期输出“SELECT,COLUMN FROM TABLE WHERE COLUMNID = VALUE”

错误的查询

应该是这个

  String queryz = "SELECT " + MySQLiteHelper.COLUMN_THREADID 
            + " FROM " + MySQLiteHelper.TABLE_NAME 
            + " WHERE " + MySQLiteHelper.COLUMN_ID + "=" + ide;

预期输出“SELECT COLUMN FROM TABLE WHERE COLUMNID = VALUE”

检查数据库!= null 然后 database.isOpen(),如果执行

检查光标!= null 然后 cursor.getCount()> 0