问题从sqlite android获取数据

时间:2012-09-05 05:21:52

标签: android sqlite cursor

我有一个包含两列的表 - 名称和符号。我想要的是得到与名称对应的符号。我用这种方法。它没有任何回报。请检查一下。

public String getSymbol(String name) {
    String Symbol = "";
    String[] columns = new String[] { "name", "symbol" };
    Cursor c = getReadableDatabase().query(DATABASE_TABLE_NAME, columns, null,
            null, null, null, null);

    int iName = c.getColumnIndex("name");
    int iSymbol = c.getColumnIndex("symbol");

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {

        if (c.getString(iName) == name) {
            Symbol = Symbol + c.getString(iSymbol);
        }

    }
    return Symbol;

}

2 个答案:

答案 0 :(得分:1)

尝试此功能。

public String getSymbol(String name)
    {
        try
        {
          String Symbol = "";
          Cursor c = db.query(DATABASE_TABLE_NAME, columns, "name = ?" , new String[] {name}, null, null, null);
          if(c.getCount != 0)
          {
               c.moveToFirst();
               Symbol = String.valueOf(c.getString(c.getColumnIndex("symbol"))); 
               c.close();
               return Symbol;
          }

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }

答案 1 :(得分:0)

在比较时,不要使用 c.getString(iName)== name ,而是使用 c.getString(iName).equalsIgnoreCase(name)