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