密码正确后,从DataGridView中删除所选行

本文关键字:删除 DataGridView 密码 | 更新日期: 2023-09-27 18:00:42

我想在用户以另一种形式输入正确的密码后,从连接到Access数据库的数据网格视图中删除选定的行。

我创建了一个方法,该方法应该在密码正确后从表单2调用,但什么也没发生。

表格1:

public void DeleteSelectedRows()
        {
            foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)
            {
                string ID = item.Cells[0].Value.ToString();
                conn_SN.Open();
                OleDbCommand command = new OleDbCommand();
                command.Connection = conn_SN;
                command.CommandText = "DELETE * FROM SN WHERE ID=" + ID;
                command.ExecuteNonQuery();
                conn_SN.Close();
            }
        }

这就是我如何调用表单2:中的方法

private void btnOK_Click(object sender, EventArgs e)
{
    if(textbox.Text=="admin")
    {
        Form1 form = Form1();
        form.DeleteSelectedRows();
    }
}

有什么想法吗?

密码正确后,从DataGridView中删除所选行

您可以使用Owner属性。我只是给出一个示例代码。检查并修改您的。

Form2 form2 = new Form2(dataGridView1);
        From2.Text = "some title text";
form2.Owner=this;
        form2.ShowDialog(this);
//And on form2 ; 
((Form1)this.Owner).YOURMETHODTODELETE(your parameter)

实现YOURMETHODTODELETE从网格中删除行,然后刷新网格1

我已经成功地调用了这样的方法:

private void btnOK_Click(object sender, EventArgs e)
{
    if(textbox.Text=="admin")
    {
    var form = Application.OpenForms.OfType<Meniu>().Single();
    form.DeleteSelectedRows();
    }
}