2014-04-18 36 views
0

如何解決SQLiteLog(3507):(1)在「=」附近:在android中語法錯誤sqlite。我的數據庫在錯誤活動中正常工作。該logcat的顯示在第1行由於在運行時出現語法錯誤而在顯示列表視圖時出錯

public void openAndQueryDatabase() 
{ 
    try 
{   
db = openOrCreateDatabase("mydatabase.db", SQLiteDatabase.CREATE_IF_NECESSARY , null); 

     Cursor cursor = db.rawQuery("select * from "+ table + "where name='"+ name + "'", null); //line 1 

     int count = cursor.getColumnCount(); 


     if (cursor != null) 
     { 
      if (cursor.moveToFirst()) 
      { 
       do 
       { 
        for (int i =0 ; i< count; i++) 
        { 
        String data = cursor.getString(i); 
        details.add(data); 
        } 
       } 
       while (cursor.moveToNext()); 
      } 
     }  

    } 
    catch (SQLiteException se) 
    { 

     Log.e(getClass().getSimpleName(), "Error in the code"); 
    } 

    finally 
    { 

      db.close(); 
    } 

} 

回答

2

你需要和where關鍵字的表名之間的空間中的語法錯誤:

Cursor cursor = db.rawQuery("select * from "+ table + " where name='"+ name + "'", null); 

還要考慮使用?綁定args作爲文字,例如

Cursor cursor = db.rawQuery("select * from "+ table + " where name=?", new String[] { name }); 
+0

間距工作。但由於錯誤仍然無法顯示列表視圖:04-18 11:49:43.686:E/Trace(882):打開跟蹤文件時出錯:沒有這樣的文件或目錄(2) – PrachiN

+0

這只是logcat中的噪音,並非真正的錯誤你應該關心的。 – laalto

相關問題