密码正确后从 DataGridView 中删除选定的行
Posted
技术标签:
【中文标题】密码正确后从 DataGridView 中删除选定的行【英文标题】:Delete selected rows from DataGridView after password is correct 【发布时间】:2015-07-02 08:02:16 【问题描述】:在用户以另一种形式输入正确密码后,我想从连接到 Access 数据库的 datagridview 中删除选定的行。
我创建了一个方法,应该在密码正确后从表单 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();
有什么想法吗?
【问题讨论】:
ID
列的类型是什么?你调试过你的代码,看看会发生什么?
如果从 form1(datagridview 所在的位置)调用此代码,则可以完美运行。但是当我尝试从另一种形式调用它时,它不再起作用了。
你有异常吗?有什么错误吗?
不。什么都没有发生。
如何从第二个Form中调用函数?也许这可以帮助link
【参考方案1】:
您可以使用 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 以从网格中删除行,然后刷新您的 grid1
【讨论】:
你试过我的解决方案了吗?请告诉我们你是如何解决这个问题的,这样它将成为世界上一些人的学习经验。如果我的堆栈溢出成员提供的答案对您有用,请接受并支持答案。如果答案没有用或有危险的错误,您也可以对答案投反对票。【参考方案2】:我已经设法像这样调用该方法:
private void btnOK_Click(object sender, EventArgs e)
if(textbox.Text=="admin")
var form = Application.OpenForms.OfType<Meniu>().Single();
form.DeleteSelectedRows();
【讨论】:
以上是关于密码正确后从 DataGridView 中删除选定的行的主要内容,如果未能解决你的问题,请参考以下文章