Суть моего задания, чтобы по клику на любую строку и при клике программа автоматически обновила значение ячейки 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.
Заранее спасибо!!!