Как я могу сохранить значение ячейки в строках datagridview из al oop и передать его другому l oop для каждой строки? - PullRequest
1 голос
/ 16 марта 2020

У меня есть datagridview с DataGridViewCheckBoxColumn. Я хочу обновить базу данных, если флажок установлен, обновите test_status до 5, если флажок не установлен, оставьте test_status = 4. исходный результат имени столбца.

Я использовал следующий код при нажатии кнопки СОХРАНИТЬ:

    private void btnSave_Click(object sender, EventArgs e)
            {
                 int test_status = 4;



     for (int i = 0; i < dgvResult.Rows.Count; i++)
                    {
                      foreach (DataGridViewRow row in dgvResult.Rows)
                    {
                      bool status = (bool)row.Cells[8].FormattedValue;
                        if (status)
                        {
                            test_status = 5;

                        }
                        else
                        {
                            test_status = 4;
                        }
                    }
                        result.UPDATE_LABORDERS_RESULTS(Convert.ToInt32(txtOrder.Text),txtExamUser.Text,
                                                  DateTime.Parse(DateTimeExamined.Value.ToString()),
                                                  Convert.ToInt32(dgvResult.Rows[i].Cells[2].Value),
                                                  dgvResult.Rows[i].Cells[4].Value.ToString(),
                                                  dgvResult.Rows[i].Cells[5].Value.ToString(),
                                                  Convert.ToInt32(dgvResult.Rows[i].Cells[7].Value.ToString()),
                                                  Convert.ToInt32(txtPno.Text),
                                                  Convert.ToInt32(txtcustid.Text),
                                                  dgvResult.Rows[i].Cells[1].Value.ToString(),
                                                  Convert.ToInt32(dgvResult.Rows[i].Cells[6].Value.ToString()),
                                                  Convert.ToInt32(txtUpdateCount.Text),test_status);


                    }

                    MessageBox.Show("Result Saved Successfully ", "Entering Result", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }
    }

enter image description here

что не так с моим кодом, что мне нужно обновить?

ОБНОВЛЕНИЕ: я отлаживаю код, который принимает значение последней строки, а не каждой строки, когда я установил флажок для последней строки в datagridview, обновил все строки в базе данных и сохранил статус теста = 5 для всех строк ,

как передать test_status из первого foreach l oop во второй update_laborders_results?

1 Ответ

1 голос
/ 17 марта 2020

Вы можете обновить базу данных test_status в первую очередь для каждой строки, если флажок установлен на 5, а затем выполнить другой l oop следующим образом:

private void btnSave_Click(object sender, EventArgs e)
     {
            for (int i = 0; i < dgvResult.Rows.Count; i++)
                    {
                         foreach (DataGridViewRow row in dgvResult.Rows)
                            {

                                bool status = (bool)row.Cells[8].FormattedValue;
                                if (status)
                                {
                                    string cs = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
                                    SqlConnection con = new SqlConnection(cs);
                                    SqlCommand cmd = new SqlCommand("UPDATE table set test_status = 5 // where condition ", con);
                                    con.Open();
                                    cmd.ExecuteNonQuery();
                                    con.Close();
                                }


                                result.UPDATE_LABORDERS_RESULTS(Convert.ToInt32(txtOrder.Text), txtExamUser.Text,
                                                      DateTime.Parse(DateTimeExamined.Value.ToString()),
                                                      Convert.ToInt32(dgvResult.Rows[i].Cells[3].Value),
                                                      dgvResult.Rows[i].Cells[5].Value.ToString(),
                                                      dgvResult.Rows[i].Cells[6].Value.ToString(),
                                                      Convert.ToInt32(dgvResult.Rows[i].Cells[8].Value.ToString()),
                                                      Convert.ToInt32(txtPno.Text),
                                                      Convert.ToInt32(txtcustid.Text),
                                                      dgvResult.Rows[i].Cells[2].Value.ToString(),
                                                      Convert.ToInt32(dgvResult.Rows[i].Cells[7].Value.ToString()), Convert.ToInt32(txtUpdateCount.Text));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...