2010-11-01 3 views
0

У меня есть приложение, которое загружает данные из Интернета и должно писать его в БД с помощью поставщика контента.Android Database query

private void addCurrency(Currency _currency){ 
    ContentResolver cr=getContentResolver(); 

    ContentValues values = new ContentValues();  

    values.put(CurrencyProvider.KEY_DATE, _currency.getDate().getTime()); 
    values.put(CurrencyProvider.KEY_NAME, _currency.getName()); 
    values.put(CurrencyProvider.KEY_NOMINAL, _currency.getNominal()); 
    values.put(CurrencyProvider.KEY_VALUE, _currency.getValue()); 

    String w=CurrencyProvider.KEY_NAME+" = "+_currency.getName(); 
    if (cr.query(CurrencyProvider.CONTENT_URI, null, w,null , null).getCount()==0){ 
     cr.insert(CurrencyProvider.CONTENT_URI, values); 
    }else 
     cr.update(CurrencyProvider.CONTENT_URI, values, w, null); 
} 

Итак, я пытаюсь либо обновить запись, если она существует, либо добавить новое. Но я получаю SQLite исключение: рядом "" Доллар: ошибка синтаксиса:, при компиляции: SELECT * FROM валюты WHERE (имя = Австралийский доллар)

ответ

1

Try окружающих ваше имя с цитатой

String w=CurrencyProvider.KEY_NAME+" = '"+_currency.getName() + "'";