【问题标题】:Delete DatagridviewRows using DatagridviewImageColumn使用 DatagridviewImageColumn 删除 DatagridviewRows
【发布时间】:2015-04-09 08:05:55
【问题描述】:

我有一个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;
    }
}

此代码没有给出任何错误。它执行得很好,但实际上没有从两个表中删除任何行。不知道这段代码哪里出错了??

【问题讨论】:

    标签: c# sql winforms datagridview sql-delete


    【解决方案1】:

    这段代码似乎是正确的,它一定可以正常工作,所以检查一下

    参数可能是单元格不是

    dechargeDataGridView.Rows[e.RowIndex].Cells[0].Value.ToString()

    所以尝试这样写列名:

    dechargeDataGridView.Rows[e.RowIndex].Cells["ColumnName"].Value.ToString()

    【讨论】:

    • 是的,你是对的,我在索引列中感到困惑,因为我以编程方式创建了列。我将它更改为列名,它就像一个魅力。感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    相关资源
    最近更新 更多