大家好,因为标题说我想删除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();
}
答案 0 :(得分:1)
似乎在foreach循环中,只处理了第0个项目。
如果你想指定索引,我建议使用loop而不是foreach。
如果你想使用foreach,那么你可能应该使用“row”本身而不是继续处理第0项:
dgvProducts.SelectedRows[0]
dgvProducts[0, selectedIndex]
答案 1 :(得分:0)
在您的代码中,您只会循环 SelectedRows ,而不是所有行。
{{ctrl.test}}
要遍历整个数据网格的行,您应该使用
foreach (DataGridViewRow row in dgvProducts.SelectedRows)
希望,此链接有助于: https://msdn.microsoft.com/ru-ru/library/system.windows.forms.datagridview.rows(v=vs.110).aspx