我正在尝试使用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;
}
这是我得到的错误:
我很困惑请帮助..
答案 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)
在项目中添加引号:"select * from Articles where AS_name= '" + item + "'";
尝试卸载并重新安装应用。如果您对表进行了更改,则需要卸载并进行全新安装。
谢谢,应用程序没有崩溃,但是它返回基于1的索引,而不是名为Desc_art的列中包含的描述,可以帮助我进一步
你想从表中的第0位回到这一列?
strvalue=cur.getString(0);