mercredi 6 avril 2016

Returning SQLite data depending on the current day - no results

I have written a method in my database class that searches the database depending on what day it is, however, even though the details are right there are no results.

Can anyone see why it won't return anything? I've tried about 15 different variations in the SQL Query so I'm pretty stuck!

The method is as follows in my 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;      
    }

I then use this method in MainActivity to sub the data in:

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();           
        }

    }

Aucun commentaire:

Enregistrer un commentaire