Sql 如何在更新查询中使用if语句?
我想在选中复选框时阻止它。我有管理员和教员页面,当管理员阻止特定复选框时,它应该阻止所有教员的特定复选框。这些复选框在网格中。每个学院都有单独的登录,但所有学院都有相同的网格。当一个学院屏蔽特定复选框时,它也应屏蔽其他学院 当我运行教员页面时,它会阻止管理员已阻止的特定复选框,然后当我再次从教员页面提交时,它会在Sql 如何在更新查询中使用if语句?,sql,checkbox,datagridview,sql-update,Sql,Checkbox,Datagridview,Sql Update,我想在选中复选框时阻止它。我有管理员和教员页面,当管理员阻止特定复选框时,它应该阻止所有教员的特定复选框。这些复选框在网格中。每个学院都有单独的登录,但所有学院都有相同的网格。当一个学院屏蔽特定复选框时,它也应屏蔽其他学院 当我运行教员页面时,它会阻止管理员已阻止的特定复选框,然后当我再次从教员页面提交时,它会在test.db中用新值更新所有旧值,并将其解锁到其他教员 我真正需要的是,当管理员阻止复选框时,它应该始终阻止所有其他教员,当教员也选择一些其他复选框并提交时,该特定复选框也应该阻止所有
test.db
中用新值更新所有旧值,并将其解锁到其他教员
我真正需要的是,当管理员阻止复选框时,它应该始终阻止所有其他教员,当教员也选择一些其他复选框并提交时,该特定复选框也应该阻止所有其他教员
这是我用于更新的代码。但它不起作用
admin:
protected void Button2_Click(object sender, EventArgs e)
{
using (SqlConnection con2 = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\work station\documents\visual studio 2012\Projects\NewTimeTable\NewTimeTable\App_Data\Admindetail.mdf;Integrated Security=True"))
{
string datedif = r.Cells[0].Text;
string dayweek = ddlclass.SelectedValue + ' ' + ddlmonth.SelectedValue + ' ' + ddlcourse.SelectedValue + ' ' + ddlsemester.SelectedValue + ' ' + ddlweek.SelectedValue;
con2.Open();
SqlCommand comm = new SqlCommand("insert into test (datedif,hour1,hour2,hour3,hour4,hour5,dayweek) values (@datedif,@hour1,@hour2,@hour3,@hour4,@hour5,@dayweek) ", con2);
comm.Parameters.AddWithValue("@datedif", datedif);
comm.Parameters.AddWithValue("@hour1", hour1);
comm.Parameters.AddWithValue("@hour2", hour2);
comm.Parameters.AddWithValue("@hour3", hour3);
comm.Parameters.AddWithValue("@hour4", hour4);
comm.Parameters.AddWithValue("@hour5", hour5);
comm.Parameters.AddWithValue("@dayweek", dayweek);
comm.ExecuteNonQuery();
con2.Close();
}
}
教员:
protected void btnsubmit_Click(object sender, EventArgs e)
{
using (SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
string datedif = r.Cells[0].Text;
string subject1 = ddlsubjects.SelectedValue;
string subject2 = ddlsubjects.SelectedValue;
string subject3 = ddlsubjects.SelectedValue;
string subject4 = ddlsubjects.SelectedValue;
string subject5 = ddlsubjects.SelectedValue;
con2.Open();
SqlCommand comm = new SqlCommand("UPDATE test SET hour1 = @hour1,subject1 = @subject1,hour2 = @hour2,subject2 = @subject2,hour3 = @hour3,subject3 = @subject3,hour4 = @hour4,subject4 = @subject4,hour5 = @hour5,subject5 = @subject5 where datedif =@datedif and dayweek='"+ddlweek.SelectedValue+"'", con2);
comm.Parameters.AddWithValue("@hour1", hour1);
comm.Parameters.AddWithValue("@datedif", datedif);
comm.Parameters.AddWithValue("@subject1", subject1);
comm.Parameters.AddWithValue("@hour2", hour2);
comm.Parameters.AddWithValue("@subject2", subject2);
comm.Parameters.AddWithValue("@hour3", hour3);
comm.Parameters.AddWithValue("@subject3", subject3);
comm.Parameters.AddWithValue("@hour4", hour4);
comm.Parameters.AddWithValue("@subject4", subject4);
comm.Parameters.AddWithValue("@hour5", hour5);
comm.Parameters.AddWithValue("@subject5", subject5);
comm.ExecuteNonQuery();
con2.Close();
}
}
我想在那个更新查询中使用If语句。建议我怎么做 您可以在以下情况下使用CASE表达式:
UPDATE test
SET
Hour = CASE WHEN LEN(@Hour) > 0 THEN @Hour ELSE @Hour1 END,
Password = CASE WHEN LEN(@Password) > 0 THEN @Password ELSE Password END
....
WHERE
....
编辑
CASE WHEN 'True' THEN @TrueCondition ELSE @FalseCondition END
我正在使用bool类型的复选框(即True或False)。如何在此条件下使用CASE表达式?@Stanislovas当我提交教员页面时,它会用新值更新旧值,但我希望旧值以及表中的更新值。只有选定值应在数据库中更新。建议我一些其他想法。让我们一起来。