2015-05-19 17 views
6

İki sayfam var, biri yönetici ve diğeri fakülte. Yönetici fakülteye konu tahsis eder. Fakülte sadece orada sadece gerekli saatleri seçmek ister. Sorunum, devre dışı bırakılmış onay kutusu için güncelleme sorgusu yapmak istemiyorum. Aşağıdaki kodu denedim, ancak engellenmiş onay kutusu için de güncelleniyor.Onay kutusu devre dışı bırakıldığında güncelleştirme yapılmamalıdır

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

Sizin durumunuz kafa karıştırıcı gibi görünüyor ve herhangi bir senaryo için bir araya geldiği görünüyor. – Amit

+0

gönderen nesnesinin nereden geldiğini – Sachu

+0

** Asp.net için yeni, yalnızca etkinleştirilmiş bir onay kutusunu güncellemeyi denedim. Bazı fikirleri önerebilirim. ** –

cevap

1

Önce IF deyimini ihtiyaç duyulmadığı şekilde kaldırmak isteyebilirsiniz. Başkalarının söyledikleri gibi, hem gerçek OR (||) yanlış için kontrol ediyor ve her zaman doğru olacaktır.

İkincisi, nerede denetlediğiniz herhangi bir yeri görmüyorum .Enabled == False Bu sizin aradığınız şey için olabilir. Kodunuzdaki göre

+0

** bu güncelleştirmeyi yalnızca etkinleştirilmiş onay kutusu için yapabilir ve devre dışı bırakma onay kutusunu değil ** –

1

onay kutusu bir sorgu gerçekleştirmek ve onay kutusu etkin eğer özürlü onay kutularını gerçekleştirmek istemiyorsanız size başka bir sorgu

if (aa.Enabled==false) 
{ 

} 
else{ 

} 

gerçekleştirmek devre dışı bırakılırsa parçası

altında kaldırmak
if (aa.Enabled==false) 
{ 

} 
+0

neden çalışmıyor –

İlgili konular