【发布时间】:2025-11-25 04:30:01
【问题描述】:
我有一个MultipleDropdownlist,用户可以从中选择多个项目。
现在我想要的是,仅当从 dropdownlist 中选择的项目为 PROCESSED 时,条件才应进入 FOR LOOP 内
下面是我的代码。
DataTable dtspmonthyear = new DataTable();
ObjPriCon.Open();
var selectedItemstest = cmbEmp_Name.Items.Cast<ListItem>().Where(x => x.Selected).Select(x => x.Value).ToArray();
var resulttest = String.Join(",", selectedItemstest);
var count = selectedItemstest.Length;
str_emp_sel = resulttest;
using (SqlConnection conn = new SqlConnection("ConnectionString"))
{
using (SqlCommand sqcmd = new SqlCommand("select month(a.dt_of_leave)month, year(a.dt_of_leave)year " +
"from emp_mst a where month(a.dt_of_leave) >= month(getdate())-1 and " +
"year(a.dt_of_leave)= case when month(getdate())=1 " +
"then year(getdate())-1 else year(getdate()) end " +
"and emp_card_no IN (" + str_emp_sel + ") order by emp_name", ObjPriCon))
{
SqlDataAdapter damonthyear = new SqlDataAdapter(sqcmd);
damonthyear.Fill(dtspmonthyear);
for (i = 0; i < dtspmonthyear.Rows.Count; i++)
{
CF.ExecuteQuerry("exec Emp_Resign_Allocate_Leave '" + str_emp_sel + "','" + dtspmonthyear.Rows[0]["month"].ToString() + "', '" + dtspmonthyear.Rows[0]["year"].ToString() + "'");
}
}
}
【问题讨论】:
-
只需将其包装在
if语句中 -
@p.s.w.g:谢谢,但我应该在哪个
condition上查看IF声明? -
为什么不直接在 SQL 查询中添加
where子句?作为非常重要的一点,您应该真正地、真正地查看参数化 SQL,以避免为您的SqlConnection和SqlCommand使用 SQL injection attacks 和using语句。我还强烈建议查找 .NET 命名约定。 -
我猜
selectedItemstest包含您感兴趣的选定项目集。我不能确定它的数据类型,但它可能是这样的if (selectedItemstest.Cast<EmpInfo>().Any(x => x.Status == "PROCESSED") -
您还没有解释为什么不将条件放入 SQL 查询中。
标签: c# sql asp.net for-loop drop-down-menu