2016-07-11 58 views
-1

我在我的項目中有這樣的代碼,我在這個網站的幫助下做到了這一點,我的代碼檢查datagridviewcheckboxcolumn的檢查狀態,然後檢查datagridview的另一個單元與這些檢查它執行一個方法,我所有的代碼是在裏面按鈕點擊。 這是我的代碼我的代碼第一次不執行?爲什麼?

private void update_bt_Click(object sender, EventArgs e) 
{ 
    var current_year = DateTime.Today.Year; 
    var last_year = DateTime.Today.Year - 1; 
    for (int i = 0; i < dgv_student_update.Rows.Count; i++) 
    { 
     Func<DataGridViewRow, int, int> cellValue = (row, j) => 
     { 
      int.TryParse(row.Cells["stg_id"].Value.ToString(), out j); 
      return j; 
     }; 
     DataGridViewCheckBoxCell chkchecking = dgv_student_update.Rows[i].Cells["result"] as DataGridViewCheckBoxCell; 
     if (Convert.ToBoolean(chkchecking.Value) == true) 
     { 
      //check if cell[3] in each row equal to stage id (1=first stage). 
      if (cellValue(dgv_student_update.Rows[i], 3) == 1) 
      { 
       sc.year_student_update(
       Convert.ToInt32(dgv_student_update.Rows[i].Cells[1].Value), 
       dgv_student_update.Rows[i].Cells[2].Value.ToString(), 2); 
      } 
     } 
    } 
} 

當我點擊按鈕,它不執行「year_student_update()」方法,但在第二次點擊它做的工作。任何人都可以幫助我嗎?

+0

您是否使用Visual Studio? WPF?的WinForms? ASPX? – GibralterTop

+0

yes visual studio 2013. winforms –

+0

'sc'定義在哪裏? –

回答

3

您的方法sc.year_student_update(...位於if條件if (cellValue(dgv_student_update.Rows[i], 3) == 1)之內,最有可能不是true。評論if阻止並看看你的方法命中。如果是這樣,那麼你應該檢查爲什麼你的if塊不能令人滿意。

+0

當我把一個messageBox例如在if的方法的地方它給我的消息與第一次點擊這意味着這兩個如果是真的,我是如果是真的。 –

相關問題