Otagowanie Buttona Remove

0

Cześć panowie i panie , mam sobie aplikację która działa w ten sposób że dodaje sobie przez panel admina do ktorego się loguje do DataGridView rekordy (zaraz dam kody),problem polega na tym że mam problem z otagowaniem przycisku remove aby te rekordu dodane przez admina mi usowało oto kody:

DODANIE REKORDU

private void btn_addjobs(object sender, EventArgs e)
        {
            string description = textBox1.Text;
            SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\andreas\Documents\Online_Jobb_Portal.mdf;Integrated Security=True;Connect Timeout=30");

            con.Open();
            string query1 = "insert into Record1(Description)values('"+description+"')";
            SqlCommand cmd = new SqlCommand(query1,con);
            cmd.ExecuteNonQuery();
        }

Moje otagowanie usuniecia rekordu

 private void btn_remove(object sender, EventArgs e)
        {

            this.Hide();
            Admin sixteen = new Admin();
            sixteen.Show();


            foreach (DataGridViewRow row in dataGridView1.SelectedRows)
                if (!row.IsNewRow) dataGridView1.Rows.Remove(row);
        }

Problem Polega na tym ze wybranego rekordu po kliknieciu prycisku USUN REKORD nie usuwa

1

usunąć rekord musisz z bazy używając (w Twoim przypadku) polecenia SQL 'DELETE FROM ... WHERE ...` i odświeżyć dane w DGV

0

Panie i Panowie napisałem cos takiego i w visual studio 2017 dziala lecz w 2019 nie chce oto kod:

protoyp usuniecia wybranego rekordu

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\xx\Documents\Online_Jobb_Portal.mdf;Integrated Security=True;Connect Timeout=30");
    con.Open();
            string selected_id = dataGridView1.CurrentRow.Cells["Id"].Value.ToString();
    string selected_desc = dataGridView1.CurrentRow.Cells["Description"].Value.ToString();
    string selected_Cv = dataGridView1.CurrentRow.Cells["Cv"].Value.ToString();

    string delete_row = "delete *from Record1 where id=' " + selected_id + " 'and Description =' " + selected_desc + " 'and Cv='" + selected_Cv + "'";

    SqlCommand comd = new SqlCommand(delete_row, con);
    comd.ExecuteNonQuery();


            int count = DataAccess.execute(delete_row);

            if (count > 0)
            {
                MessageBox.Show("usunieto rekord");
                dataGridView1.Rows.Clear();

            }

            else
            {

                MessageBox.Show("nie usunieto rekordu");
            }


            String collect_data = "Select *from Record1";

DataTable dt = DataAccess.SelectData(collect_data);

            foreach(DataRow roe in dt.Rows)
            {

                int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells["Id"].Value = row["Id"];
                dataGridView1.Rows[n].Cells["Description"].Value = row["Description"];
                dataGridView1.Rows[n].Cells["Cv"].Value = row["Cv"];


            }

Przycisk dodania rekordu

private void btn_addjobs(object sender, EventArgs e)
        {
            string description = textBox1.Text;
            SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\xx\Documents\Online_Jobb_Portal.mdf;Integrated Security=True;Connect Timeout=30");

            con.Open();
            string query1 = "insert into Record1(Description)values('" + description + "')";
            SqlCommand cmd = new SqlCommand(query1, con);
            cmd.ExecuteNonQuery();
        }

przycisk wyswietlenia rekordów

private void btn_display(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\xx\Documents\Online_Jobb_Portal.mdf;Integrated Security=True;Connect Timeout=30");
            con.Open();
            string query = "select *from Record1";

            SqlCommand cmd = new SqlCommand(query, con);
            SqlDataReader dr = cmd.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Load(dr);
            dataGridView1.DataSource = dt;


        }

i cofniecie czyli back

 private void btn_backkkk(object sender, EventArgs e)
        {
            this.Hide();
            Admin ten = new Admin();
            ten.Show();
        }

Panie i Panowie co jest nie tak ?

0

Taki kod także nie przynosi oczekiwanych efektów

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\xx\Documents\Online_Jobb_Portal.mdf;Integrated Security=True;Connect Timeout=30");
          con.Open();

          SqlCommand comd = new SqlCommand("delete *from Record1 where id=' " + dataGridView1.SelectedRows[0].Cells[0].Value.ToString() + "", con);
            comd.ExecuteNonQuery();
            dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
            MessageBox.Show("usunieto rekord");


          

            con.Close();
0

Po wykonniu występuje błąd :index was out of range:Must be non-negative and less than the size of the collection Parametr name:index.Odłowuje sie do elemntu którego nie ma,ale co powinno być zamiast niego kod poniżej

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\xx\Documents\Online_Jobb_Portal.mdf;Integrated Security=True;Connect Timeout=30");
            con.Open(); 

           

            SqlCommand comd = new SqlCommand("delete from Record1 where id=' " + dataGridView1.SelectedRows[0].Cells[0].Value.ToString() + "", con);
            comd.ExecuteNonQuery();
            dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0]);
            MessageBox.Show("usunieto rekord");

            con.Close();

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