2012-08-30 46 views
-3

我是一个noob到android,我想在我的数据库上运行一个查询,从我的表中返回一个字符串值。我通过使用long来选择我的行ID,从而在一个查询中成功完成了此操作。这里显示:如何在数据库上执行查询时修复SQLException?

public String getHotness(long l) throws SQLException{ 
    // TODO Auto-generated method stub 
    String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_HOTNESS }; 
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "=" + l, null, null, null, null); 
    if (c != null){ 
     c.moveToFirst(); 
     String hotness = c.getString(2); 
     return hotness; 
    } 
    c.close(); 
    return null; 
} 

但现在我必须查询另一个表使用字符串,但是当我执行此查询时,我得到一个SQLException。

public String getSingleQty(String aCoin) throws SQLException{ 
    // TODO Auto-generated method stub 
    String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_QUANTITY, KEY_OUNCES, KEY_VALUE};  
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_NAME + "=" + aCoin, null, null, null, null); //<--this causes exception 
    String result = ""; 

    if (c != null){ 
     c.moveToFirst(); 
     result= c.getString(2); 
     c.close(); 
     return result; 
    } 
    c.close(); 
    return null; 

我不明白为什么会发生这种情况。我对这两个表格使用了相同的格式。任何帮助是极大的赞赏。

+3

和最新的异常???把Stacktrace它.. – user370305

+0

有什么异常? – Selvin

回答

3

由于aCoin作为字符串传递给查询,因此必须用撇号包装。代码更正片段:

Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_NAME + "='" + aCoin + "'", null, null, null, null); 

或者(如果语法适合你更好的)尝试这种方式:

Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_NAME + "=?", new String[] {aCoin}, null, null, null); 
+0

nie bardzo,nie bardzo ... raczej KEY_NAME +“=?”我图腾jako参数... – Selvin

+0

obarozwiązaniasąpoprawne,kwestiaskładni(ktojakąwoli) –

+0

问题由siepojawiłjak由w zmiennej aCoinbyłapostrof''':) – Selvin

相关问题