2014-02-24 68 views
0

我正在開發一個從數據庫生成問題的項目,這些問題是通過多選答案生成的。選定的單選按鈕錯誤

在這個表單上,我有一個文本框,它從數據庫和4個單選按鈕中發出問題,從數據庫中讀取可能的答案。每次單擊「下一個按鈕」時,單選按鈕文本名稱都會使用數據庫表中的記錄進行更新。

我想要這個程序要做的是,當用戶選擇一個單選按鈕時,我希望系統檢查所選的單選按鈕文本名是否等於數據庫表中的正確答案。例如在表中有5列,即:option1,option2,option3,option4和rightAnswer。 因此,無論何時用戶選擇單選按鈕,我希望系統檢查所選單選按鈕的文本名是否等於「RightAnswer」列中的記錄,如果是這樣,我會將一個messagebox顯示爲「正確」,如果不是messgaebox顯示「錯誤」

的工作,我已經這樣做了FAR:
這是我更新從數據庫中單選按鈕,文本名稱的方式。
當窗體加載

void LoadingPossibleAnswers() 
     {  
      Query = "SELECT * FROM AnswersTbl"; 
      theReader = conn.ExecuteStatement(Query); 
      while (theReader.Read()) 
      {      
        radioButton1.Text = theReader["Option1"].ToString(); 
        radioButton2.Text = theReader["Option2"].ToString(); 
        radioButton3.Text = theReader["Option3"].ToString(); 
        radioButton3.Text = theReader["Option4"].ToString();   
      }  
      conn.CloseConnection(); 
     } 

按鈕被點擊

void CorrectAnswer(RadioButton rdb) 
{ 
    string correct = rdb.Text; 

    Query = "SELECT * FROM FROM AnswersTbl;" 
    theReader = conn.ExecuteStatement(Query); 
    while (theReader.Read()) 
    { 
     correct = theReader["RightAnswer"].ToString(); 

     if (rdb.Checked && rdb.Text == correct) 
     {  
      MessageBox.Show("correct"); 
     } 
     else 
     { 
      MessageBox.Show("wrong"); 
     } 
    } 
} 

時,此方法被調用這個方法被調用當過我跑我上面的代碼中,else條件執行,即使正確的電臺按鈕被選中。任何人都可以請幫忙,爲什麼這是?我錯過了什麼嗎?

+0

「單擊按鈕時調用此方法」。點擊哪個按鈕後?它是'RadioButton'嗎? – Bharadwaj

+0

對不起。當單選按鈕被選中時,「下一個按鈕」會被調用。 – user3346749

+0

設置一個斷點。可能是什麼問題?變量是否包含你期望的內容?另外,通過'String.Equals()'比較字符串。 –

回答

0

當參考您的代碼時, 在進入CorrectAnswer方法之前執行此檢查(rdb.Checked)。 像

if(rdb.Checked) 
{ 
CorrectAnswer(rdb); 
} 

做此項檢查所有RadioButton S和僅傳遞檢查RadioButton的方法。

您可以在CorrectAnswer方法中刪除rdb.Checked條件。