当复选框被禁用时,不应该进行更新
本文关键字:不应该 更新 复选框 | 更新日期: 2023-09-27 17:49:37
我有两个页面,一个是admin,另一个是faculty。行政分配科目给教员。教师只希望选择所需的小时数。我的问题是,我不想执行更新查询禁用复选框。我已经尝试了下面的代码,但它也在更新禁用复选框。
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 datedif=@datedif", 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 datedif=@datedif", 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();
}
}
}
首先要删除IF语句,因为它不需要。正如其他人所说,它正在检查是否为真或(||)为假,并且它将始终为真。
第二,不要看到您检查.Enabled == False的任何地方
根据你的代码,如果复选框被禁用,你执行一个查询,如果复选框被启用,你执行另一个查询
if (aa.Enabled==false)
{
}
else{
}
如果您不想对禁用复选框执行操作,请删除下面的部分
if (aa.Enabled==false)
{
}