0

名前と記号の 2 つの列を持つテーブルがあります。私が望むのは、名前に対応するシンボルを取得することだけです。私はこの方法を使用します。何も返さないタイプです。これをチェックしてください。

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;

}
4

2 に答える 2

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;
    }
于 2012-09-05T05:31:42.793 に答える
0

比較中にc.getString(iName) == nameを使用する代わりに、c.getString(iName).equalsIgnoreCase(name)を使用します

于 2012-09-05T05:31:23.123 に答える