从sqlite返回搜索到的数据

时间:2014-07-07 13:31:59

标签: android android-sqlite

我正在尝试使用String,&来搜索sqlite中的项目。试图返回该行中包含的描述。项目存储在名为Articles的表中,列名为AS_name,&说明栏名称为Desc_art,我无法退回。

这是我的代码:

public String searchData(String item) {
    String strvalue = null;
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cur = null;
    String strquery = "select * from Articles where AS_name = "+item;
    cur = db.rawQuery(strquery,null); 
    if(cur! = null&&cur.moveToFirst()) {
        do {
            strvalue = cur.getString(0);
        } while(cur.moveToNext());
    }
    return strvalue;  
}

这是我得到的错误:

enter image description here

我很困惑请帮助..

2 个答案:

答案 0 :(得分:2)

在您的查询中item是字符串,因此更改

String strquery="select * from Articles where AS_name= "+item;

String strquery="select * from Articles where AS_name='" + item + "'";

或者这个

Cursor cur=null;
cur = db.query("Articles", null, "AS_name" + "=?",
            new String[] { item }, null, null, null, null);

而不是

Cursor cur=null;
String strquery="select * from Articles where AS_name= "+item;
cur=db.rawQuery(strquery,null); 

并改变

strvalue=cur.getString(0);

strvalue=cur.getString(cur.getColumnIndex("Desc_art"));

答案 1 :(得分:0)

  1. 在项目中添加引号:"select * from Articles where AS_name= '" + item + "'";

  2. 尝试卸载并重新安装应用。如果您对表进行了更改,则需要卸载并进行全新安装。

  3.   

    谢谢,应用程序没有崩溃,但是它返回基于1的索引,而不是名为Desc_art的列中包含的描述,可以帮助我进一步

    你想从表中的第0位回到这一列?

    strvalue=cur.getString(0);