ANDROID sqlite无法检索
当我像这样分离查询时,我可以得到查询所说的内容。我希望根据类型和时间检索事件,我希望事件未结束,今天未开始,即查询生成器代码:ANDROID sqlite无法检索,android,sqlite,Android,Sqlite,当我像这样分离查询时,我可以得到查询所说的内容。我希望根据类型和时间检索事件,我希望事件未结束,今天未开始,即查询生成器代码: db = this.getWritableDatabase(); if(cursor.moveToFirst()==false){ Log.e(TAG,"null"); return null; }//bulamadıysa hic null dondruyor // L
db = this.getWritableDatabase();
if(cursor.moveToFirst()==false){
Log.e(TAG,"null");
return null;
}//bulamadıysa hic null dondruyor
// Log.e(TAG,"cursor: "+cursor.getColumnNames());
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Event event = new Event();
// event.setID(Integer.parseInt(cursor.getString(0)));
event.setName(cursor.getString(1));
event.setDescription(cursor.getString(7));
event.setLink(cursor.getString(4));
event.setLocation(cursor.getString(2));
event.setType(cursor.getString(3));
event.setStartDate(cursor.getString(5));
event.setEndDate(cursor.getString(6));
// to show user if correct, write screen
eventList.add(event);
event.writeSc(event);
} while (cursor.moveToNext());
}
db.close();
return eventList;
}
首先,我将其分离,这是有效的:
String selectQuery = "SELECT * FROM " + TABLE_EVENTS+
" WHERE ("
+ KEY_START_TIME+" <= '"+formatter.format(currentDate.getTime())+"'"
+" AND "
+ KEY_END_TIME+ " >= '"+formatter.format(currentDate.getTime())+"') "+
" OR ("+KEY_END_TIME + " BETWEEN '"+formatter.format(currentDate.getTime())+"' " +
"AND '"+formatter.format(currentDate.getTime()).substring(0,10)+ " 23:59')" +
// " AND "+
//KEY_TYPE+" = \""+type_+"\""
" ORDER BY "+ KEY_START_TIME +" ASC";
String selectQuery=“SELECT*FROM”+表事件+
“其中(”
+KEY_START_TIME+“=”+formatter.format(currentDate.getTime())+“”)+
或“+KEY\u END\u TIME+”介于“+formatter.format(currentDate.getTime())+”之间+
“和”“+formatter.format(currentDate.getTime()).substring(0,10)+“23:59”“”+
//“和”+
//按键类型+“=\”“+类型+”\“”
“订单依据”+按键启动时间+“ASC”;
这也是可行的
String selectQuery = "SELECT * FROM " + TABLE_EVENTS+
" WHERE "
// + KEY_START_TIME+" <= //'"+formatter.format(currentDate.getTime())+"'"
// +" AND "
// + KEY_END_TIME+ " >= //'"+formatter.format(currentDate.getTime())+"') "+
// " OR ("+KEY_END_TIME + " BETWEEN //'"+formatter.format(currentDate.getTime())+"' " +
// "AND //'"+formatter.format(currentDate.getTime()).substring(0,10)+ " 23:59')" +
// // " AND "+
KEY_TYPE+" = \""+type_+"\""
" ORDER BY "+ KEY_START_TIME +" ASC";
String selectQuery=“SELECT*FROM”+表事件+
“哪里”
//+KEY_START_TIME+“=/”+formatter.format(currentDate.getTime())+“”)”+
//“或(“+KEY\u END\u TIME+”介于/“+formatter.format(currentDate.getTime())+””+
//“和/”+formatter.format(currentDate.getTime()).substring(0,10)+“23:59”)”+
////“及”+
按键类型+“=\”“+类型+”\“”
“订单依据”+按键启动时间+“ASC”;
但当我合并它们时,它就不起作用了。它在工作,但我不知道发生了什么。我知道,它们是很常见的,它们有一些事件在一起,但当我在一起时,它们会检索所有类型的事件
String selectQuery = "SELECT * FROM " + TABLE_EVENTS+
" WHERE ("
+ KEY_START_TIME+" <= '"+formatter.format(currentDate.getTime())+"'"
+" AND "
+ KEY_END_TIME+ " >= '"+formatter.format(currentDate.getTime())+"') "+
" OR ("+KEY_END_TIME + " BETWEEN '"+formatter.format(currentDate.getTime())+"' " +
"AND '"+formatter.format(currentDate.getTime()).substring(0,10)+ " 23:59')" +
" AND "+
KEY_TYPE+" = \""+type_+"\""
" ORDER BY "+ KEY_START_TIME +" ASC";
String selectQuery=“SELECT*FROM”+表事件+
“其中(”
+KEY_START_TIME+“=”+formatter.format(currentDate.getTime())+“”)+
或“+KEY\u END\u TIME+”介于“+formatter.format(currentDate.getTime())+”之间+
“和”“+formatter.format(currentDate.getTime()).substring(0,10)+“23:59”“”+
“和”+
按键类型+“=\”“+类型+”\“”
“订单依据”+按键启动时间+“ASC”;
我可以粘贴错误,但它们是正确的,studio不会给出错误。请帮忙。我好几天都看不见了,我真的很紧张。它可能很小,但我再也看不见了。它真的很愚蠢。我收集了所有和,并将公共查询放在or的两个条件下,它起了作用:
String selectQuery = "SELECT * FROM " + TABLE_EVENTS+
" WHERE ("
+ KEY_START_TIME+" <= '"+formatter.format(currentDate.getTime())+"'"
+" AND "
+ KEY_END_TIME+ " >= '"+formatter.format(currentDate.getTime())+"' "+" AND "+KEY_TYPE+" = \""+type_+"\")"+
" OR ("+KEY_END_TIME + " BETWEEN '"+formatter.format(currentDate.getTime())+"' " +
"AND '"+formatter.format(currentDate.getTime()).substring(0,10)+ " 23:59'" +" AND "+KEY_TYPE+" = \""+type_+"\")"
+ " ORDER BY "+ KEY_START_TIME +" ASC";
String selectQuery=“SELECT*FROM”+表事件+
“其中(”
+键\u开始\u时间+“=”+格式化程序.format(currentDate.getTime())+“+”和“+键\u类型+”=\“+类型+
或“+KEY\u END\u TIME+”介于“+formatter.format(currentDate.getTime())+”之间+
“和”“+formatter.format(currentDate.getTime())。子字符串(0,10)+“23:59”“+”和“+KEY\u TYPE+”=\”“+TYPE\u+”\””
+“订单依据”+按键启动时间+“ASC”;
谢谢这真是太愚蠢了。我收集了所有和,并将公共查询放在or的两个条件下,它起了作用:
String selectQuery = "SELECT * FROM " + TABLE_EVENTS+
" WHERE ("
+ KEY_START_TIME+" <= '"+formatter.format(currentDate.getTime())+"'"
+" AND "
+ KEY_END_TIME+ " >= '"+formatter.format(currentDate.getTime())+"' "+" AND "+KEY_TYPE+" = \""+type_+"\")"+
" OR ("+KEY_END_TIME + " BETWEEN '"+formatter.format(currentDate.getTime())+"' " +
"AND '"+formatter.format(currentDate.getTime()).substring(0,10)+ " 23:59'" +" AND "+KEY_TYPE+" = \""+type_+"\")"
+ " ORDER BY "+ KEY_START_TIME +" ASC";
String selectQuery=“SELECT*FROM”+表事件+
“其中(”
+键\u开始\u时间+“=”+格式化程序.format(currentDate.getTime())+“+”和“+键\u类型+”=\“+类型+
或“+KEY\u END\u TIME+”介于“+formatter.format(currentDate.getTime())+”之间+
“和”“+formatter.format(currentDate.getTime())。子字符串(0,10)+“23:59”“+”和“+KEY\u TYPE+”=\”“+TYPE\u+”\””
+“订单依据”+按键启动时间+“ASC”;
谢谢用“或”代替“和”。。用“或”代替“和”。。