2015-05-19 15 views
6

Tôi có hai trang, một trang là quản trị viên và một trang khác là khoa. Quản trị viên phân bổ theo khoa. Khoa chỉ muốn chọn những giờ được yêu cầu. Vấn đề của tôi là tôi không muốn thực hiện truy vấn cập nhật cho hộp kiểm bị tắt. Tôi đã thử mã dưới đây, nhưng nó đang cập nhật cho hộp kiểm vô hiệu hóa quá.Không nên cập nhật khi hộp kiểm bị tắt

using (SqlConnection con2 = new SqlConnection(ConfigurationManager.ConnectionStrings 
    ["ConnectionString"].ConnectionString)) 
    { 
    foreach (GridViewRow r in Gv1.Rows){ 
    if ((((
    (((CheckBox)(Gv1.Rows[r.RowIndex].FindControl("chkHour1"))).Checked == true 
|| ((CheckBox)(Gv1.Rows[r.RowIndex].FindControl("chkHour1"))).Checked == false) 
|| (((CheckBox)(Gv1.Rows[r.RowIndex].FindControl("chkHour2"))).Checked == true || ((CheckBox)(Gv1.Rows[r.RowIndex].FindControl("chkHour2"))).Checked == false) 
|| (((CheckBox)(Gv1.Rows[r.RowIndex].FindControl("chkHour3"))).Checked == true || ((CheckBox)(Gv1.Rows[r.RowIndex].FindControl("chkHour3"))).Checked == false) 
|| (((CheckBox)(Gv1.Rows[r.RowIndex].FindControl("chkHour4"))).Checked == true || ((CheckBox)(Gv1.Rows[r.RowIndex].FindControl("chkHour4"))).Checked == false) 
|| (((CheckBox)(Gv1.Rows[r.RowIndex].FindControl("chkHour5"))).Checked == true || ((CheckBox)(Gv1.Rows[r.RowIndex].FindControl("chkHour5"))).Checked == false) 
    )))) 
    { 
     SqlCommand comm; 
     CheckBox aa; 
     bool hour1 = (r.FindControl("chkHour1") as CheckBox).Checked; 
     bool hour2 = (r.FindControl("chkHour2") as CheckBox).Checked; 
     bool hour3 = (r.FindControl("chkHour3") as CheckBox).Checked; 
     bool hour4 = (r.FindControl("chkHour4") as CheckBox).Checked; 
     bool hour5 = (r.FindControl("chkHour5") as CheckBox).Checked; 
     string subject1 = ddlsubj.SelectedValue; 
     string subject2 = ddlsubj.SelectedValue; 
     string subject3 = ddlsubj.SelectedValue; 
     string subject4 = ddlsubj.SelectedValue; 
     string subject5 = ddlsubj.SelectedValue; 
     string datedif = r.Cells[0].Text; 
     aa=(CheckBox)sender; 
     con2.Open(); 
     comm = new SqlCommand(); 
     comm.Connection = con2; 
     comm.CommandType = CommandType.Text; 
     if (aa.Enabled==false) 
     { 
     comm = new SqlCommand("UPDATE test 
           SET aa=false 
           when subject1=CASE WHEN (@hour1)= 'false' THEN NULL 
           ELSE @subject1 END, 
           subject2=CASE WHEN (@hour2)= 'false' THEN NULL 
          ELSE @subject2 END, 
          subject3=CASE WHEN (@hour3)= 'false' THEN NULL 
          ELSE @subject3 END, 
          subject4=CASE WHEN (@hour4)= 'false' THEN NULL 
          ELSE @subject4 END, 
          subject5=CASE WHEN (@hour5)='false' THEN NULL 
          ELSE @subject5 END, 
          hour1 = CASE WHEN (@hour1)= 'false' THEN 'false' 
          ELSE 'true' END, 
          hour2 = CASE WHEN (@hour2)= 'false' THEN 'false' 
          ELSE 'true' END, 
          hour3 = CASE WHEN (@hour3)= 'false' THEN 'false' 
          ELSE 'true' END , 
          hour4 = CASE WHEN (@hour4)= 'false' THEN 'false' 
          ELSE 'true' END , 
          hour5 = CASE WHEN (@hour5)= 'false' THEN 'false' 
          ELSE 'true' END where [email protected]", con2); 
    } 
     else 
     { 
        comm = new SqlCommand("update test set aa=true 
          when subject1=CASE WHEN (@hour1)= 'false' THEN NULL 
          ELSE @subject1 END, 
          subject2=CASE WHEN (@hour2)= 'false' THEN NULL 
          ELSE @subject2 END, 
          subject3=CASE WHEN (@hour3)= 'false' THEN NULL 
          ELSE @subject3 END, 
          subject4=CASE WHEN (@hour4)= 'false' THEN NULL 
          ELSE @subject4 END, 
          subject5=CASE WHEN (@hour5)='false' THEN NULL 
          ELSE @subject5 END, 
          hour1 = CASE WHEN (@hour1)= 'false' THEN 'false' 
          ELSE 'true' END, 
          hour2 = CASE WHEN (@hour2)= 'false' THEN 'false' 
          ELSE 'true' END, 
          hour3 = CASE WHEN (@hour3)= 'false' THEN 'false' 
          ELSE 'true' END , 
          hour4 = CASE WHEN (@hour4)= 'false' THEN 'false' 
          ELSE 'true' END , 
          hour5 = CASE WHEN (@hour5)= 'false' THEN 'false' 
          ELSE 'true' END where [email protected]", con2); 
    } 
    comm.Parameters.AddWithValue("@subject1",subject1); 
    comm.Parameters.AddWithValue("@subject2", subject2); 
    comm.Parameters.AddWithValue("@subject3", subject3); 
    comm.Parameters.AddWithValue("@subject4", subject4); 
    comm.Parameters.AddWithValue("@subject5", subject5); 
    comm.Parameters.AddWithValue("@hour1", hour1); 
    comm.Parameters.AddWithValue("@datedif", datedif); 
    comm.Parameters.AddWithValue("@hour2", hour2); 
    comm.Parameters.AddWithValue("@hour3", hour3); 
    comm.Parameters.AddWithValue("@hour4", hour4); 
    comm.Parameters.AddWithValue("@hour5", hour5); 
    comm.ExecuteNonQuery(); 
    con2.Close(); 
     } 
     } 
    } 
+1

Điều kiện của bạn dường như gây nhầm lẫn và dường như gặp bất kỳ tình huống nào. – Amit

+0

từ nơi đối tượng người gửi đến – Sachu

+0

** Mới đối với asp.net tôi đã thử các bản cập nhật này chỉ cho phép một hộp kiểm có thể gợi ý một số ý tưởng ** –

Trả lời

1

Trước tiên, bạn muốn xóa câu lệnh IF vì không cần thiết. Nó đang kiểm tra, như những người khác đã nói, cho cả hai đúng OR (||) sai và nó sẽ luôn luôn đúng.

Thứ hai, không thấy bất cứ nơi nào bạn kiểm tra .Enabled == False Điều này có thể là những gì bạn đang tìm kiếm.

+0

** cách có thể thực hiện cập nhật đó chỉ cho hộp kiểm đã bật và không cho hộp kiểm bị tắt ** –

1

Theo mã của bạn nếu hộp kiểm đã được vô hiệu hóa bạn thực hiện một truy vấn và nếu hộp kiểm cho phép bạn thực hiện một truy vấn

if (aa.Enabled==false) 
{ 

} 
else{ 

} 

nếu bạn không muốn thực hiện trên hộp kiểm khuyết tật loại bỏ dưới phần

if (aa.Enabled==false) 
{ 

} 
+0

không có nó không hoạt động –

Các vấn đề liên quan