2015-09-16 5 views
0

, это мой код, но он всегда запрашивает, если вы хотите добавить строки, даже если они не отмечены. как вы думаете, в чем проблема?Если флажок в datagridview установлен, он будет сохранен в базе данных, и если он не будет просто запрашивать строку

private void btn_add_Click(object sender, EventArgs e) 
{ 
     List<DataGridViewRow> selectedRows = 
     (from row in dg_students.Rows.Cast<DataGridViewRow>() 
       where Convert.ToBoolean(row.Cells[3].Value) == true 
       select row).ToList();   

     if (MessageBox.Show(string.Format("Are you sure you want to add this student?", selectedRows.Count), "Confirmation", MessageBoxButtons.YesNo) == DialogResult.Yes) 
      { 
       foreach (DataGridViewRow row in selectedRows) 
       { 
        try 
        { 


         MySqlConnection conn = new MySqlConnection(myconn); 
         string Query = "Insert into southpoint_school.classlist(schoolYear, yearLevel, sectionName, studentID, studentName, gender) values ('" + schoolyr + "','" + cmb_level.Text + "','" + comboBox2.Text + "','" + row.Cells[0].Value.ToString() + "','" + row.Cells[1].Value.ToString() + "','" + row.Cells[2].Value.ToString() + "')"; 
         MySqlCommand cmd = new MySqlCommand(Query, conn); 
         conn.Open(); 
         cmd.ExecuteNonQuery(); 
         conn.Close(); 
        } 

        catch (Exception ex) 
        { 
         MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
        } 
        MessageBox.Show("Successfully Saved"); 
       } 
      } 
} 
+3

Ваше сообщение коробка будет всегда показывать, потому что вы не поставили условие на ваш, если statement – code

+0

Вы можете поместить оператор if вокруг своего текущего, чтобы проверить, проверены ли строки. – Scriven

+0

извините, но условие всегда верно. я забыл положить. поэтому он всегда выбирает строки. –

ответ

1

Положите если заявление вокруг тока, если заявление, которое проверяет количество выбранных строк:

if(selectedRows.Count >= 1) 
{ 
    //Your if statement to run with the selected rows 
} 
else 
{ 
    //Prompt user to select a row 
{ 
+0

все еще не работает. Но я думаю, что с этим кодом что-то не так: List selectedRows = (из строки в dg_students.Rows.Cast(), где Convert.ToBoolean (row.Cells [3] .Value) == true select row) .ToList(); –

+0

Вы как раз ищите выбранные строки правильно? – code

+0

Да, но каждый раз, когда я нажимаю кнопку «Добавить», она всегда запрашивает «Вы уверены, что хотите добавить этого ученика?» даже если ни одна строка не проверена. –

Смежные вопросы