我有一个简单的Android应用程序连接到我的服务器并将表保存到数据库并显示所需的数据库行按钮单击。
问题是每当我想通过使用“日期”列到达我的行它会抛出下面的异常。
好吧,如果我按行调用一行,一切正常。
我的问题是,是因为日期变量点还是别的? 注意:我已经用开启程序看了数据库,一切看起来都很好,但我不能用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
我的Create 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;
}
答案 0 :(得分:1)
使用''
或使用?
占位符来转义字符串文字。也就是说,要么改变
KEY_Date + "=" + date,
到
KEY_Date + "='" + date + "'"
甚至更好,改变
KEY_Date + "=" + date, null
到
KEY_Date + "=?", new String[] { date }