Android数据库查询

时间:2010-11-01 20:23:32

标签: android sqlite

我有应用程序,它从互联网上下载数据,并且应该使用内容提供商将其写入数据库。

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 currency WHERE(name =Австралийскийдоллар)

1 个答案:

答案 0 :(得分:1)

尝试用引号

包围你的名字
String w=CurrencyProvider.KEY_NAME+" = '"+_currency.getName() + "'";