@deadspace12

Как обновить содержимое БД из dataGridView?

Суть моего задания, чтобы по клику на любую строку и при клике программа автоматически обновила значение ячейки datagridView и чтоб эта измененная таблица обновилась и в БД MySQL, но ничего не получается.
Вот код моей таблицы, где я вывожу таблицу через датасет:
private void button1_Click(object sender, EventArgs e)
        {
            string CommandText = "Select " +
                "transportation.number as 'номер перевозки', " +
                "ticket.Name as 'ФИО пассажира', " +
                "route.Route_number as 'номер маршрута', " +
                "route.destination as 'место назначения', " +
                "ticket.Place as 'Место', " +
                "ticket.Cost as 'Стоимость', " +
                "driver.Nname as 'ФИО водителя', " +
                "transportation.active as 'Активность строки' " +
            "From " +
                "auto.transportation, " +
                "auto.route, " +
                "auto.ticket, " +
                "auto.driver " +
            "Where " +
                "(transportation.ID_Route = route.ID_Route) AND " +
                "(transportation.id_Ticket = ticket.id_Ticket) AND " +
                "(transportation.id_Driver = driver.id_Driver)";
            MySqlCommand cmd = new MySqlCommand(CommandText);
            if (textBox1.Text != "")
            {
                if (comboBox1.SelectedIndex == 0)
                    CommandText = CommandText + " AND (transportation.number = '" + textBox1.Text + "')";
                if (comboBox1.SelectedIndex == 1)
                    CommandText = CommandText + " AND (route.Route_number = '" + textBox1.Text + "')";
                if (comboBox1.SelectedIndex == 2)
                    CommandText = CommandText + " AND (route.destination LIKE '" + textBox1.Text + "%') ";
                if (comboBox1.SelectedIndex == 3)
                    CommandText = CommandText + " AND (ticket.Name LIKE '" + textBox1.Text + "%') ";
                if (comboBox1.SelectedIndex == 4)
                    CommandText = CommandText + " AND (driver.Nname LIKE '" + textBox1.Text + "%') ";
            }
            adapter = new MySqlDataAdapter(CommandText, conn);
            ds = new DataSet();
            adapter.Fill(ds, "transportation");
            dataGridView1.DataSource = ds.Tables["transportation"].DefaultView;
        }

и код кнопки, где я пытаюсь одновременно автоматически обновить те вставить значение ячейки datagridview.Cells[7] 7 по счету и обновить тут же эту измененную таблицу, но получается только заполнить таблицу этим же значением но не заполнить:
private void button3_Click(object sender, EventArgs e)
        {
            Form3 f = new Form3();
            int row = dataGridView1.CurrentCell.RowIndex;
            if (f.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    MySqlCommand command = new MySqlCommand("Update transportation set active = @active where idtransportation=@id", conn);
                    command.Parameters.AddWithValue("@active", dataGridView1.Rows[row].Cells[7].Value = "X");
                    command.Parameters.AddWithValue("@id", dataGridView1.Rows[row].Cells[0].Value);
                    command.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

Помогите разобраться как решить проблему я думаю все дело в моей переменной active но я не знаю как правильно надо ее так объявить чтоб получилось обновить БД из datagridview.
Заранее спасибо!!!
  • Вопрос задан
  • 154 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы