Android Sqlite Syntax Errors(英语:Android Sqlite Syntax Errors



我有一个简单的Android应用程序,它可以连接到我的服务器并将表格保存到数据库,并通过单击按钮显示所需的数据库行。
问题是每当我想使用"日期"列访问我的行时,它都会在下面抛出该异常。
好吧,如果我按 id 调用行,一切正常。

我的问题是这是因为日期变量的点或其他什么? 注意:我已经使用打开程序查看了数据库,一切看起来都很好,但我无法使用日期列读取 android 的行。

这是我的例外是

    02-09 19:45:21.909: E/AndroidRuntime(8286): Caused by: android.database.sqlite.SQLiteException:
 near ".2014": syntax error (code 1): , while compiling: SELECT DISTINCT _id, Date, Day, v1, v2, v3, 
v4 FROM db1 WHERE Date=07.02.2014

我的创建 SQL 命令

DATABASE_CREATE = "create table " + DbTableName + " (" + KEY_ROWID
                + " integer primary key autoincrement, " + KEY_Date
                + " text not null, " + KEY_Day + " text not null, " + KEY_v1
                + " text not null, " + KEY_v2 + " text not null, " + KEY_v3
                + " text not null, " + KEY_v4 + " text not null "
                + ");";

我的获取方法

public Cursor getDay(String date) throws SQLException {
        Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {
                KEY_ROWID, KEY_Date, KEY_Day, KEY_v1, KEY_v2, KEY_v3, KEY_v4 },
                KEY_Date + "=" + date, null, null, null, null, null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

使用 '' 转义字符串文字或使用?占位符。也就是说,要么改变

KEY_Date + "=" + date,

KEY_Date + "='" + date + "'"

甚至更好,改变

KEY_Date + "=" + date, null

KEY_Date + "=?", new String[] { date }

最新更新