【问题标题】:Sqlite query error: Invalid Column TypeSqlite 查询错误:无效的列类型
【发布时间】:2011-07-19 15:17:51
【问题描述】:

数据库:

  db.execSQL("CREATE TABLE " + TABLE_NAME_NOTE + " ("
                + BaseColumns._ID + " INTEGER PRIMARY KEY,"
                + NoteColumns.TITLE + " NVARCHAR(200),"
                + NoteColumns.NOTE + " TEXT,"
                + NoteColumns.CREATED_DATE + " INTEGER,"
                + NoteColumns.MODIFIED_DATE + " INTEGER,"
                + NoteColumns.TYPE + " INTEGER,"
                + NoteColumns.NEED_NOTICE + " INTEGER,"
                + NoteColumns.NOTICE_WAY + " INTEGER,"
                + NoteColumns.NOTICE_TIME + " INTEGER"
                + ");");

这是我的查询:

Cursor cursor = mContext.managedQuery(mContext.getIntent().getData(), 
            NoteEntry.PROJECTION_NOTE,
            null, null, NoteColumns.DEFAULT_SORT_ORDER);

当 NoteEntry.PROJECTION_NOTE 为时,代码可以正常工作

public static final String[] PROJECTION_NOTE = new String[] {
    BaseColumns._ID, // 0
    NoteColumns.TITLE, // 1
    NoteColumns.NOTE };

但是当我设置这个时我得到“无效的列类型”异常

public static final String[] PROJECTION_NOTE = new String[] {
    BaseColumns._ID, // 0
    NoteColumns.TITLE, // 1
    NoteColumns.NOTE,
    NoteColumns.CREATED_DATE,
    NoteColumns.MODIFIED_DATE,
    NoteColumns.TYPE,
    NoteColumns.NEED_NOTICE,
    NoteColumns.NOTICE_WAY,
    NoteColumns.NOTICE_TIME
};

好困惑。
还有一个问题,我是否应该使用 INTEGER 类型将日期数据存储为 Created_Date 字段,sdk 中的代码示例可以。我是 sqlite 和 android 的新手。
请帮助我。非常感谢。

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    date 也设为 TEXT 类型而不是 INTEGER 类型,因为日期可能包含一些特殊字符。

    【讨论】:

    • 但在 sdk 记事本示例中,他们使用 INTEGER,并且插入功能也可以正常工作。我感谢这不是问题
    【解决方案2】:

    “类型”是列名 又找到了这个解决问题的方法,还是不明白:

    public static final String[] PROJECTION_NOTE = new String[] {
            BaseColumns._ID, // 0
            NoteColumns.TITLE, // 1
            NoteColumns.NOTE,
            NoteColumns.CREATED_DATE,
            NoteColumns.MODIFIED_DATE,
            NoteColumns.TYPE + " as " + NoteColumns.TYPE,
            NoteColumns.NEED_NOTICE + " as " + NoteColumns.NEED_NOTICE,
            NoteColumns.NOTICE_WAY + " as " + NoteColumns.NOTICE_WAY,
            NoteColumns.NOTICE_TIME + " as " + NoteColumns.NOTICE_TIME,
        };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      相关资源
      最近更新 更多