2014-05-05 304 views
0

我想從網格中刪除記錄,但不是從數據庫中刪除記錄。從gridview刪除記錄,但不是從數據庫中刪除記錄

我想設置數據庫字段ISDeleted 1當數據從gridview刪除,但不想從數據庫刪除記錄。

我的代碼從gridview和db中刪除記錄。

凡在我的代碼 -

string strcon = ConfigurationManager.ConnectionStrings["Dbconnection"].ConnectionString; 
SqlCommand command; 
protected void Page_Load(object sender, EventArgs e) 
{ 
    tblAdd.Visible = false; 
    Label1.Visible = false; 
    //GridView1.DataBind(); 
    if (!Page.IsPostBack) 
     { 
      fillLanguageGrid(); 
     } 
} 

public void fillLanguageGrid() 
    { 
     GridView1.DataSourceID = "SqlDataSource1"; 
     GridView1.DataBind(); 
    } 

protected void btnDelete_Click(object sender, EventArgs e) 
{ 
    foreach (GridViewRow gvrow in GridView1.Rows) 
    { 
     CheckBox chkdelete = (CheckBox)gvrow.FindControl("chk"); 
     if (chkdelete.Checked) 
     { 
      string name= Convert.ToString(GridView1.DataKeys[gvrow.RowIndex].Values["Name"].ToString()); 
      // command.Parameters.Add(new SqlParameter("@status", SqlDbType.VarChar, 50)); 
      deleteRecordByName(name); 
     } 
    } 
    fillLanguageGrid(); 
} 

public void deleteRecordByName(string Name) 
{ 
    SqlConnection sqlConnection = new SqlConnection(strcon); 
    using (SqlCommand command = new SqlCommand("[dbo].[hrm_Langauges]", sqlConnection)) 
    { 
     // define this to be a stored procedure 
     command.CommandType = CommandType.StoredProcedure; 
     command.Parameters.Add(new SqlParameter("@status", SqlDbType.VarChar, 50)); 
     // define the parameter and set its value 
     command.Parameters.Add(new SqlParameter("@Name", SqlDbType.VarChar)).Value = Name; 
     command.Parameters.Add(new SqlParameter("@IsDeleted", SqlDbType.Bit)).Value = 1; 
     command.Parameters["@status"].Value = "Delete"; 
     //open connection, execute DELETE query, close connection 
     sqlConnection.Open(); 
     command.ExecuteNonQuery(); 
     sqlConnection.Dispose(); 
    } 

} 

回答

1

對於您需要在各自的數據庫表中添加一列是否顯示記錄或not.For防爆改變:增加柱像可見INT

假設如果

可見= 1 - >顯示在GridView的那個記錄

可見= 0 - >隱藏在GridView的那個記錄

作出缺席可見= 1因此所有記錄顯示在gridview中(寫入查詢如選擇...... Where Visible = 1)。當您嘗試刪除記錄時使用更新查詢需要t O更新可見1比0。所以你的GridView只顯示記錄,其中可見= 1。那特定的刪除記錄未在你的GridView顯示,因爲它可見列0.Try這個..