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); //此处写入
    
    }
    
  • 相关阅读:
    基础
    树梅派线程
    超声波
    电脑版微信双开多开
    子类能不能重写父类的构造方法
    window8taskost.exe一直占用cpu
    windows下rocketmq安装
    spring循环依赖问题
    线程池的种类
    并行和并发有什么区别?
  • 原文地址:https://www.cnblogs.com/misybing/p/4963910.html
Copyright © 2011-2022 走看看