从DataGridView和SQL Server数据库中删除一行

本文关键字:一行 删除 DataGridView SQL Server 数据库 | 更新日期: 2023-09-27 18:15:37

我试图删除DataGridView和SQL Server数据库中的一行数据。第一次点击删除按钮就会显示

MessageBox.Show("Record Deleted Successfully!");

,但是所选的行在DataGridView和数据库中没有被删除。

这是我的代码:

private void PayratesDisplay()
{
    con.Open();
    DataTable dt = new DataTable();
    adap = new SqlDataAdapter("select Membership AS [Membership Type], PerSession AS [Per Session], Discounted from tbl_payrates", con);
    adap.Fill(dt);
    dataGridView4.DataSource = dt;
    con.Close();
}
// Clear Data  
private void ClearData()
{
    tbMemship.Text = "";
    tbPerses.Text = "";
    tbDisc.Text = "";
    ID = 0;
}
private void btn_PRdel_Click(object sender, EventArgs e)
{
    if (ID != 0)
    {
        con.Open();
        cmd = new SqlCommand("DELETE FROM tbl_payrates WHERE Membership = @Membership", con);
        cmd.Parameters.AddWithValue("@Membership", ID);
        cmd.ExecuteNonQuery();
        con.Close();
        MessageBox.Show("Record Deleted Successfully!");
        PayratesDisplay();
        ClearData();
    }
}  

从DataGridView和SQL Server数据库中删除一行

如果我理解正确,您正在尝试删除网格的当前行。那么就不需要ID成员了,你可以使用这样的内容

private void btn_PRdel_Click(object sender, EventArgs e)
{
    var row = dataGridView4.CurrentRow;
    if (row == null) return;
    var ID = row.Cells["Membership Type"].Value;
    // The rest of the code (w/o the "if ID != 0")
}

像这样修改代码

int r=cmd.ExecuteNonQuery();
con.Close();
if(r>0){MessageBox.Show("Record Deleted Successfully!");}