2014-12-02 51 views
0

這裏它不顯示任何錯誤只有頁面加載是什麼錯誤?刪除多個asp.net轉發器只有複選框選擇的項目

C#代碼

protected void imgs_Click(object sender, ImageClickEventArgs e) 
     {   
      foreach (RepeaterItem ri in repeater.Items) 
      { 

      CheckBox item_check = (CheckBox)ri.FindControl("item_check"); 
      Label txt_id = (Label)ri.FindControl("txt_id"); 

       if (item_check.Checked) 
       { 
        con = new SqlConnection(strcon); 
        SqlCommand cmd = new SqlCommand("ram", con); 
        cmd.CommandType = CommandType.StoredProcedure; 
        con.Open(); 
        cmd.Parameters.AddWithValue("@Action", "DELETE"); 
        cmd.Parameters.AddWithValue("@eid", txt_id); 
        repeat(); 
       }     
     }  
} 

asp.code

+0

請檢查的http:// WWW。 aspsnippets.com/Articles/Bulk-delete-multiple-rows-in-ASPNet-Gridview-control-using-CheckBoxes.aspx – 2014-12-02 07:37:55

+0

把它放在一個try catch塊中,並打印出catch塊中的錯誤,看看是否真的沒有錯誤 – Vajura 2014-12-02 07:42:07

回答

1

你忘了寫cmd.ExecuteNonQuery();

  1. 停止使用AddWithValue
  2. 始終使用usingSqlConnection用於和SqlCommand它實現IDisposable

    保護無效imgs_Click(對象發件人,ImageClickEventArgs E)
    {

    foreach (RepeaterItem ri in repeater.Items) 
        { 
    
        CheckBox item_check = (CheckBox)ri.FindControl("item_check"); 
        Label txt_id = (Label)ri.FindControl("txt_id"); 
    
         if (item_check.Checked) 
         { 
         Using(SqlConnection con = new SqlConnection(strcon)) 
          { 
         Using(SqlCommand cmd = new SqlCommand("ram", con)) 
          { 
          cmd.CommandType = CommandType.StoredProcedure; 
          con.Open(); 
          cmd.Parameters.Add("@Action",SqlDbType.Varchar,50).Value="DELETE"; 
          cmd.Parameters.Add("@eid",SqlDbType.Int).Value=Convert.ToInt16(txt_id.Text); 
          cmd.ExecuteNonQuery(); 
          repeat(); 
          } 
          } 
         }     
    }  
    

    }

+0

我得到這個錯誤集合被修改;枚舉操作可能不會執行。 – 2014-12-02 09:46:28

0
foreach (RepeaterItem ri in repeater.Items) 
    { 

     CheckBox item_check = (CheckBox)ri.FindControl("item_check"); 
     Label txt_id = (Label)ri.FindControl("txt_id"); 

     if (item_check.Checked) 
     { 

      con = new SqlConnection(strcon); 
      cmd = new SqlCommand("ram", con); 
      cmd.CommandType = CommandType.StoredProcedure; 
      cmd.Parameters.AddWithValue("@Action", "DELETE"); 
      cmd.Parameters.AddWithValue("@eid", txt_id.Text); 
      try 
      { 
       con.Open(); 
       cmd.ExecuteNonQuery(); 

      } 
      catch (Exception ex) 
      { 
       ex.Message.ToString(); 
      } 
      finally 
      { 

       con.Close(); 
      } 
     } 
    } 
    repeat(); 
相關問題