2014-04-17 6 views
0

Я использую базу данных MS Access, где я храню Man of the Match в качестве Yes/No check-box. Целью приведенного ниже кода является проверка отметки галочки. Если он отмечен галочкой, добавьте его в TotalMoM.if (boolean) не выполняется?

Проблема: TotalMoM всегда 1 (даже если отмечено более одного галочки) или 0 (если отмечены галочки нуля).

try 
    { 
     String filename = "Database.mdb"; 
     String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="; 
     database += filename.trim() + ";DriverID=22;READONLY=false"; 
     conn = DriverManager.getConnection(database, "", ""); 

     for(int x = 1; x < 18; x++)//will repeat 18 times (once for each team fixture) 
     { 
      Statement sta = conn.createStatement(); 

      ResultSet rs = sta.executeQuery("SELECT * FROM tblPlayers WHERE PlayerID = "+ PlayerID +" AND FixtureNumber = "+ x); 

      while (rs.next()) 
      { 
      MoM = false; //initialising variable 
      TotalMoM = 0; 
      MoM = rs.getBoolean("MoM"); 
      if (MoM){ //if Man of the Match checkbox is ticked 
       TotalMoM = TotalMoM + 1; //calculating total 
      } 
      jLabel12.setText(String.valueOf(TotalMoM)); 
      } 
     } 
    } 
    catch (Exception e) 
    { 
    System.out.println("Exception e:" + e); 
    } 
+2

Checkbox быть галочка не обязательно означает, что значение извлекается из БД 'true'. Распечатайте его, чтобы понять, что это такое. – devnull

+6

Вы перебрасываете 'TotalMoM = 0;' на каждом проходе через цикл. Сделайте это один раз перед циклом. – AntonH

+0

Спасибо Антон, наверное, я слишком долго смотрел на экран :) – user3450753

ответ

0

Попробуйте это ..

MoM = false; //initialising variable 
TotalMoM = 0; 
while (rs.next()) 
     { 

     MoM = rs.getBoolean("MoM"); 
     if (MoM){ //if Man of the Match checkbox is ticked 
      TotalMoM = TotalMoM + 1; //calculating total 
     } 
     jLabel12.setText(String.valueOf(TotalMoM));