我已经在搜索依赖于数据库但今天是什么日子,我的数据库类写的方法,虽然细节是对目前还没有结果。取决于当天返回SQLite的数据 - 没有结果
有人能看到为什么它不会返回任何东西?我已经在SQL查询中尝试了大约15种不同的变体,所以我很困难!
的方法是在我DB.java如下:
public List<tableModules> getModuleTime(String module1, String module2, String module3, String day) {
List<tableModules> moduleList = new ArrayList<tableModules>();
// Select All Query
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT modulename, modulelecturetime, moduleseminartime FROM " + Table2 + " WHERE (modulename=? OR modulename=? OR modulename=?) AND (modulelecturedate=? OR moduleseminardate=?)", new String[]{module1, module2, module3, day, day});
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
tableModules module = new tableModules();
module.modulename = cursor.getString(0);
module.modulelecturedate = cursor.getString(1);
module.moduleseminardate = cursor.getString(2);
moduleList.add(module);
} while (cursor.moveToNext());
}
else
{
Log.d("Cant", "Find any lectures today");
}
// return contact list
return moduleList;
}
然后我用这个方法MainActivity到子数据:
public void getTodaysModules(String sessionName)
{
List<tableStudents> studentModules = db.getStudentsModules(sessionName);
if (!studentModules.isEmpty())
{
for (tableStudents session: studentModules)
{
//Save modules to string
String module1 = session.modules.toString();
String module2 = session.modules1.toString();
String module3 = session.modules2.toString();
String today = getCurrentDay().toString();
Toast.makeText(MainActivity.this, "Today is: " + today, Toast.LENGTH_LONG).show();
TextView event1 = (TextView)findViewById(R.id.event1);
event1.setText(today + "'s Events:");
List<tableModules> moduleDayList = db.getModuleTime(module1, module2, module3, today);
for (tableModules module: moduleDayList) {
if(!module.modulelecturedate.isEmpty())
{
event1.setText("Your Lecture for" + module.modulename.toString() + "is at" + module.modulelecturetime.toString());
}
if (!module.moduleseminardate.isEmpty())
{
event1.setText("Your Seminar for" + module.modulename.toString() + "is at" + module.moduleseminartime.toString());
}
else
{
event1.setText("You have no seminars/lectures today");
}
}
}
}
else
{
Toast.makeText(MainActivity.this, "N", Toast.LENGTH_LONG).show();
}
}
我原来有5个值,但得到了同样的结果 –
我会更新我的代码在第二个 –
这两个日期列是否真的是'VARCHAR'?如果没有,为什么'天'是'字符串'?另外,他们是纯日期还是日期+时间? – Andreas