【问题标题】:Delete all rows from datagridview and database从datagridview和数据库中删除所有行
【发布时间】:2017-07-05 00:54:25
【问题描述】:

大家好,正如标题所说,我想从 datagridview 中删除所有行,并在此过程中从数据库中删除它们。这是我的代码,但它只删除一行而不是全部。谢谢

     private void clear_Click(object sender, EventArgs e)
    {

        if (this.dgvProducts.SelectedRows.Count > 0)
        {
            foreach (DataGridViewRow row in dgvProducts.SelectedRows)
            {
                int selectedIndex = dgvProducts.SelectedRows[0].Index;
                int rowID = int.Parse(dgvProducts[0, selectedIndex].Value.ToString());
                 crud.AddRecord("Delete from Supplier_productlist where ProductID = '" + rowID + "' and SupplierID = '"+supplierid.Text+"' ");

            }
        }

        //dgvProducts.Refresh();

    }

【问题讨论】:

    标签: c# database datagridview


    【解决方案1】:

    似乎在 foreach 循环中,只处理了第 0 项。

    如果要指定索引,我建议使用 for 循环而不是 foreach。

    如果您想使用 foreach,那么您可能应该处理“行”本身,而不是继续处理第 0 项:

    dgvProducts.SelectedRows[0]
    dgvProducts[0, selectedIndex]
    

    【讨论】:

    • 我只用它来指定要在数据库中删除的产品ID。先生,我如何处理行而不是第 0 项?
    • 如果不测试,我建议先试试这个:替换 int selectedIndex = dgvProducts.SelectedRows[0].Index;通过 int selectedIndex = row.Index;我认为这里发生的情况是,无论 foreach 循环如何,在每次迭代中,代码总是从第 0 项中提取索引。
    • 在启动 int selectedIndex 的行上使用断点运行调试器时,我们应该能够看到在每次迭代中分配了不同的索引。如果是这种情况,那么我们的方向是正确的,尽管可能需要也可能不需要更多代码更改。
    • 很高兴它有帮助。 :)
    【解决方案2】:

    在您的代码中,您只循环 SelectedRows,而不是所有 Rows。

    foreach (DataGridViewRow row in dgvProducts.SelectedRows)
    

    要遍历整个数据网格的行,您应该使用

    foreach (DataGridViewRow row in dgvProducts.**Rows**)
    

    希望,此链接有助于: https://msdn.microsoft.com/ru-ru/library/system.windows.forms.datagridview.rows(v=vs.110).aspx

    【讨论】:

    • 更改后仍然只删除一行。感谢您的链接先生,但它的俄罗斯大声笑
    • 好的。您不需要int selectedIndex = dgvProducts.SelectedRows[0].Index;,因为您可以循环并获取带有row 变量的行。顺便说一句,看起来您的 supplierid.Text 修复了文本,并且数据库中只有一条带有 SupplierID = '"+supplierid.Text+"' " 的记录会受到影响,可能是,您需要完全删除它吗?
    • 这里是英文链接:msdn.microsoft.com/en-gb/library/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    相关资源
    最近更新 更多