我希望在用户以其他形式输入正确的密码后,从连接到Access数据库的datagridview中删除所选行。
我创建了一个方法,应该在密码正确后从表单2调用,但没有任何反应。
Form1中:
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();
}
}
有什么想法吗?
答案 0 :(得分:0)
您可以使用所有者属性。我只是给出一个示例代码。检查一下并修改你的。
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以从网格中删除行,然后刷新grid1
答案 1 :(得分:0)
我设法调用了这样的方法:
private void btnOK_Click(object sender, EventArgs e)
{
if(textbox.Text=="admin")
{
var form = Application.OpenForms.OfType<Meniu>().Single();
form.DeleteSelectedRows();
}
}