代码之家  ›  专栏  ›  技术社区  ›  Igor Filippov

Android数据库查询

  •  0
  • Igor Filippov  · 技术社区  · 14 年前

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

    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异常: 在“?”附近:语法错误:,编译时:从货币位置(名称=?)中选择*

    1 回复  |  直到 14 年前
        1
  •  1
  •   ccheneson    14 年前

    试着用引号把你的名字括起来

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