Usuwanie danych z bazy sql poprzez wskazanie wiersza w dataGridView

0

Jestem w trakcie robienia aplikacji do edycji bazy sql wystawionej w internecie . Udało mi się zrobić proste usuwanie :


        private void metroTile4_Click(object sender, EventArgs e)
        {
            ConnectionClass c = new ConnectionClass();
            c.OpenConn();
            DataSet ds = new DataSet();

            string cmd = "Delete from Pracownicy where (Nazwisko = '"+metroTextBox1.Text+"')";

            OdbcDataAdapter da = new OdbcDataAdapter(cmd, c.cn);
            da.Fill(ds, comboBox1.GetItemText(comboBox1.SelectedItem));
            //  dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);    <---------  usunie zawartość jedynie z datagrid'a ,nie z bazy 

            c.CloseConn();
        }

W tej chwili żeby coś usunąć muszę wprowadzić wartość do textboxa. Chciałem zrobić to nieco wygodniej czyli poprzez zaznaczenie odpowiedniego wiersza .
Robiłem to na kilka sposobów np. tak : string cmd = "Delete from Pracownicy where '"+dataGridView1.SelectedRows[0].Index+"')"; ale żaden mi nie zadziałał.

1

Staraj się bazować na obiektach, a nie na tekście. Przypisz do datasource strukturę odpowiadającą pracownikowi w bazi danych. Druga sprawa to że nazwisko może się powtarzać więc możesz doprowadzić do sytuacji usunięcia wielu pracowników o tym samym nazwisku. Bazuj na ID obiektu, czyli "delete from pracownicy where id = "". Aby dostać się do zaznaczonego wiersza, poszukaj informacji w google np. o "datagridview + get selected row".

1

Spróbuj tego:

 dataGridView1.SelectedRows[0].Cells[NumerKoluimny].Value.ToString()

i tak jak kolega wyżej pisał usuwaj po ID

1 użytkowników online, w tym zalogowanych: 0, gości: 1