zoukankan      html  css  js  c++  java
  • [o] SQLite数据库报错: Invalid column C

    向SQLite数据库内新增列,之前出现过报错为提示no such column,通过删除并重建数据库文件解决,这次报错为无效的数据列:

    java.lang.IllegalArgumentException: Invalid column C

    问题原因:

     ContentProvider 在关联数据库时须定义UriMatcher并将新增列写入对应Hashmap,否则无法识别到数据表的列值。

    解决办法:

    在ContentProvider的子类里定义 UriMatcher及Hashmap,并写入列名

    public class A extends ContentProvider {
    
    public static final String C ="c";
    
    private static UriMatcher uriMatcher;
    private NoteDatabaseOpenHelper mDbhelper;
    private static HashMap<String, String> sProjectionMap;
    
    static{
            uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
            uriMatcher.addURI(Entity.AUTHORITY, Entity.TABLE_NOTE, NOTE_DIR);
            uriMatcher.addURI(Entity.AUTHORITY, Entity.TABLE_NOTE + "/#", NOTE_ITEM);
            sProjectionMap = new HashMap<String, String>();
            sProjectionMap.put(Entity.C, Entity.C); //此处写入
    
    }
    
  • 相关阅读:
    数据库30条规范
    数据库索引原理
    HashMap的实现原理
    Google 和 Baidu 常用的搜索技巧
    Arrays工具类十大常用方法
    fastjson将json格式null转化空串
    SolrCloud的介绍
    网页背景图片自适应浏览器大小
    addlinkedserver
    常用
  • 原文地址:https://www.cnblogs.com/misybing/p/4963910.html
Copyright © 2011-2022 走看看