在SQLite android java中搜索不起作用

在SQLite android java中搜索不起作用,java,android,sqlite,search,cursor,Java,Android,Sqlite,Search,Cursor,我正在尝试从sqlite数据库中获取数据。我已经有了一个员工表,我想按员工姓名获取员工信息。我已经在数据库帮助器中创建了如下函数: public List getEmpdat(字符串empname){ 最终字符串表_NAME=“Employee”; String selectQuery=“SELECT*FROM EmployeeName=“+empname”; SQLiteDatabase db=this.getReadableDatabase(); List li=new ArrayList

我正在尝试从sqlite数据库中获取数据。我已经有了一个员工表,我想按员工姓名获取员工信息。我已经在数据库帮助器中创建了如下函数:

public List getEmpdat(字符串empname){
最终字符串表_NAME=“Employee”;
String selectQuery=“SELECT*FROM EmployeeName=“+empname”;
SQLiteDatabase db=this.getReadableDatabase();
List li=new ArrayList();
Cursor Cursor=db.rawQuery(selectQuery,null);
字符串[]数据=null;
//字符串名称=null;
if(cursor.moveToFirst()){
做{
字符串名称=cursor.getString(2);
字符串注释=cursor.getString(3);
字符串strdate=cursor.getString(4);
if(strdate==null)
strdate=“0”;
stringgate=cursor.getString(6);
如果(门==null)
gate=“0”;
String enddate=cursor.getString(5);
如果(enddate==null)
enddate=“0”;
加上(姓名);
加上(附注);
li.添加(标准日期);
li.添加(截止日期);
加(门);
//将数据放入数组或类变量中
}while(cursor.moveToNext());
}
cursor.close();
返回李;

}
尝试更改发生异常的行,并检查其是否有效

String selectQuery = "SELECT  * FROM Employee where EmployeeName='"+empname+"'";

您可以在查询中使用占位符,就像这样

String query = String.format("SELECT  * FROM Employee WHERE EmployeeName='%s'",empname);
您将看到
“%s”
,它用作占位符,查询时您的变量值将插入占位符。 因此,
'%s'
可以用于
字符串
占位符,如果您想要
数字
,可以使用
'%d'
。我希望这对您有所帮助。

字符串值在rawquery中总是需要的“”,所以请使用String selectQuery=“SELECT*FROM EmployeeName=”+EmployeeName+“;