C# 如何在DataGridView中删除/隐藏记录,但它在SQL数据库中仍然可用

C# 如何在DataGridView中删除/隐藏记录,但它在SQL数据库中仍然可用,c#,C#,在我的SQL数据库中,我创建了4列(UserID、Username、Password、Status)。状态表示当前记录处于活动状态。如果该记录处于非活动状态,我将仅在DataGridView中删除它,但该记录仍将保留在SQL数据库中,并处于“停用”状态。 到目前为止,我创建了这段代码。如果单击删除按钮,状态将更改为“非活动或0”,但仍可在DataGridView上看到 private void btnDelete_Click(object sender, EventArgs e) {

在我的SQL数据库中,我创建了4列(UserID、Username、Password、Status)。状态表示当前记录处于活动状态。如果该记录处于非活动状态,我将仅在DataGridView中删除它,但该记录仍将保留在SQL数据库中,并处于“停用”状态。 到目前为止,我创建了这段代码。如果单击删除按钮,状态将更改为“非活动或0”,但仍可在DataGridView上看到

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();

    }