繁体   English   中英

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

[英]Deleting a row from DataGridView and SQL Server database

我正在尝试删除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();
    }
}  

如果我理解正确,则您正在尝试删除网格的当前行。 然后就不需要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!");}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM