C# 如何在DataGridView中删除/隐藏记录,但它在SQL数据库中仍然可用
在我的SQL数据库中,我创建了4列(UserID、Username、Password、Status)。状态表示当前记录处于活动状态。如果该记录处于非活动状态,我将仅在DataGridView中删除它,但该记录仍将保留在SQL数据库中,并处于“停用”状态。 到目前为止,我创建了这段代码。如果单击删除按钮,状态将更改为“非活动或0”,但仍可在DataGridView上看到C# 如何在DataGridView中删除/隐藏记录,但它在SQL数据库中仍然可用,c#,C#,在我的SQL数据库中,我创建了4列(UserID、Username、Password、Status)。状态表示当前记录处于活动状态。如果该记录处于非活动状态,我将仅在DataGridView中删除它,但该记录仍将保留在SQL数据库中,并处于“停用”状态。 到目前为止,我创建了这段代码。如果单击删除按钮,状态将更改为“非活动或0”,但仍可在DataGridView上看到 private void btnDelete_Click(object sender, EventArgs e) {
private void btnDelete_Click(object sender, EventArgs e)
{
if (ID != 0)
{
cmd = new SqlCommand("update tbl_Record set Status=@Status where UserID=@UserID", con);
con.Open();
cmd.Parameters.AddWithValue("@UserID", UserID);
cmd.Parameters.AddWithValue("@Status", 0);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Record Deactivated");
DisplayData();
ClearData();
}
else
{
MessageBox.Show("Please Select Record to Deactivate");
}
}
下面是在DataGridView中显示数据的步骤
private void DisplayData()
{
con.Open();
DataTable dtbl = new DataTable();
adapt = new SqlDataAdapter("select * from tbl_Record", con);
adapt.Fill(dtbl);
dgv1.DataSource = dtbl;
con.Close();
}
您想替换
DisplayData()
用于填充数据网格的查询应在“状态”列上进行筛选。同意@PeterLillevold。发布代码以更新数据库,但应添加用于在datagrid中加载数据的代码。在那里,您应该更改为在
Status
上进行筛选,以仅显示具有特定Status
值的记录。我不熟悉c#以及SQL数据库。这帮了大忙谢谢:)
private void DisplayData()
{
con.Open();
DataTable dtbl = new DataTable();
adapt = new SqlDataAdapter("select * from tbl_Record where Status=1", con);
adapt.Fill(dtbl);
dgv1.DataSource = dtbl;
con.Close();
}