使用 DatagridviewImageColumn 删除 Datagridview 行
Delete DatagridviewRows using DatagridviewImageColumn
我有一个 DataGridView
,它绑定到一个 DataTable
,它有另一个 DataTable
的外键。我添加了一个 DatagridViewImageColumn
来删除这两个 DataTable
中的行。我使用的代码如下。
private void dechargeDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
switch (dechargeDataGridView.Columns[e.ColumnIndex].Name)
{
case "delete":
if (con.State != ConnectionState.Open)
{
con.Open();
}
SqlCommand deleteDechargeCmd = new SqlCommand("DELETE FROM [Decharge] WHERE NumeroDecharge = @NumDecharge", con);
deleteDechargeCmd.Parameters.AddWithValue("@NumDecharge", dechargeDataGridView.Rows[e.RowIndex].Cells[0].Value.ToString());
SqlCommand deleteLigneDCmd = new SqlCommand("DELETE FROM [LigneDecharge] WHERE NumeroDecharge = @Num", con);
deleteLigneDCmd.Parameters.AddWithValue("@Num", dechargeDataGridView.Rows[e.RowIndex].Cells[0].Value.ToString());
DialogResult result = MessageBox.Show("Voulez vous supprimer le Decharge de Livraison?", "Confirm product deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
deleteDechargeCmd.ExecuteNonQuery();
deleteLigneDCmd.ExecuteNonQuery();
MessageBox.Show("le Decharge de Livraison est supprimé avec succées");
dechargeDataGridView.Rows.RemoveAt(e.RowIndex);
}
else
{
}
con.Close();
break;
}
}
这段代码没有给出任何错误。它执行得很好,但实际上没有从两个表中删除任何行。不知道这段代码哪里出错了??
这段代码似乎是正确的,它一定能正常工作,所以检查
的值
参数可能是单元格不是
dechargeDataGridView.Rows[e.RowIndex].Cells[0].Value.ToString()
所以尝试这样写列名:
dechargeDataGridView.Rows[e.RowIndex].Cells["ColumnName"].Value.ToString()
我有一个 DataGridView
,它绑定到一个 DataTable
,它有另一个 DataTable
的外键。我添加了一个 DatagridViewImageColumn
来删除这两个 DataTable
中的行。我使用的代码如下。
private void dechargeDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
switch (dechargeDataGridView.Columns[e.ColumnIndex].Name)
{
case "delete":
if (con.State != ConnectionState.Open)
{
con.Open();
}
SqlCommand deleteDechargeCmd = new SqlCommand("DELETE FROM [Decharge] WHERE NumeroDecharge = @NumDecharge", con);
deleteDechargeCmd.Parameters.AddWithValue("@NumDecharge", dechargeDataGridView.Rows[e.RowIndex].Cells[0].Value.ToString());
SqlCommand deleteLigneDCmd = new SqlCommand("DELETE FROM [LigneDecharge] WHERE NumeroDecharge = @Num", con);
deleteLigneDCmd.Parameters.AddWithValue("@Num", dechargeDataGridView.Rows[e.RowIndex].Cells[0].Value.ToString());
DialogResult result = MessageBox.Show("Voulez vous supprimer le Decharge de Livraison?", "Confirm product deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
deleteDechargeCmd.ExecuteNonQuery();
deleteLigneDCmd.ExecuteNonQuery();
MessageBox.Show("le Decharge de Livraison est supprimé avec succées");
dechargeDataGridView.Rows.RemoveAt(e.RowIndex);
}
else
{
}
con.Close();
break;
}
}
这段代码没有给出任何错误。它执行得很好,但实际上没有从两个表中删除任何行。不知道这段代码哪里出错了??
这段代码似乎是正确的,它一定能正常工作,所以检查
的值参数可能是单元格不是
dechargeDataGridView.Rows[e.RowIndex].Cells[0].Value.ToString()
所以尝试这样写列名:
dechargeDataGridView.Rows[e.RowIndex].Cells["ColumnName"].Value.ToString()