我試圖從sqllite數據庫中獲取數據。我有員工表,並且需要通過員工姓名獲得員工數據我已經完成了我在數據庫幫助器中創建瞭如下函數:在SQLLite中搜索android java不工作
public List getEmpdat(String empname) {
final String TABLE_NAME = "Employee";
String selectQuery = "SELECT * FROM Employee where EmployeeName="+empname;
SQLiteDatabase db = this.getReadableDatabase();
List<String> li = new ArrayList<String>();
Cursor cursor = db.rawQuery(selectQuery, null);
String[] data = null;
// String name =null;
if (cursor.moveToFirst()) {
do {
String name=cursor.getString(2);
String notes=cursor.getString(3);
String strdate=cursor.getString(4);
if(strdate==null)
strdate = "0";
String gate=cursor.getString(6);
if(gate==null)
gate = "0";
String enddate=cursor.getString(5);
if(enddate==null)
enddate = "0";
li.add(name);
li.add(notes);
li.add(strdate);
li.add(enddate);
li.add(gate);
// get the data into array, or class variable
} while (cursor.moveToNext());
}
cursor.close();
return li;
}
然後調用它在這樣的搜索活動:
db=new DataBaseHelper(this);
data = (GridView) findViewById(R.id.gridView);
List<String> li = new ArrayList<String>();
li = db.getEmpdat(editName.getText().toString());
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, li);
dataAdapter.setDropDownViewResource(R.layout.activity_search);
dataAdapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_spinner_item, li);
data.setAdapter(dataAdapter);
但沒有發生從logcat中的問題時,是 「了java.lang.RuntimeException:無法啓動活動ComponentInfo {com.example.university.newapp/com.example.university.newapp.SearchActivity }:android.database.sqlite.SQLiteException:近「=」:語法錯誤(代碼1):,編譯時:SELECT * FROM Employee其中EmployeeName = 「 」可以提供任何幫助,請問
字符串值總是需要''在rawquery中,所以使用String selectQuery =「SELECT * FROM Employee where EmployeeName ='」+ empname +「'」; – Pavan