从下拉列表中删除特定值
Remove Specific Value from DropDown
我是 dot.net 的初学者,谁能建议我如何删除获取的下拉列表中的特定值。
这里我提到 fetched 的原因意味着下拉列表是使用 sql 从 table 生成或从中获取的。
sqlquery=SELECT DISTINCT rtrim(ltrim(C.Cust_name)) as Cust_name FROM table1 A inner join table2 B on A.cust_code = B.Cust_Code
SqlCommand cmd = new SqlCommand(sqlquery, conn);
SqlDataReader sr = cmd.ExecuteReader();
while (sr.Read())
{
{
cmb_cust.Items.Add(sr["Cust_name"].ToString());
}
}
foreach (ListItem li in cmb_cust.Items)
{
{
if (li.Value == "value1")
cmb_cust.Items.Remove(li);
}
}
如果我处理上述语句,我面临 集合被修改枚举操作可能无法执行,我可以得到任何其他解决方案,如将列表交换为临时列表并处理操作.从 sql.
获取后,我不需要 value1
比事后删除更好的是,一开始就不要添加它。
while (sr.Read())
{
var txt = sr["Cust_name"].ToString();
if (txt != "value1")
cmb_cust.Items.Add(txt);
}
或者您可以在 SQL 查询中排除它。
SELECT tbl1.Cust_name
FROM
(
SELECT DISTINCT rtrim(ltrim(C.Cust_name)) as Cust_name
FROM table1 A
inner join table2 B on A.cust_code = B.Cust_Code
) As tbl1
where
tbl1.Cust_name != 'value1'
出现该异常的原因是您无法在枚举集合时从集合中删除项目。如果你想删除一个项目,你应该写:
cmb_cust.Items.Remove("value1");
您不能使用 foreach
循环修改集合。将其更改为 for
循环,这应该可以工作。
甚至比在添加过程中跳过它更好的是根本不从数据库中获取它:
sqlquery = @"SELECT DISTINCT rtrim(ltrim(C.Cust_name)) as Cust_name
FROM table1 A inner join table2 B on A.cust_code = B.Cust_Code
WHERE Cust_name <> 'value1'";
;-)
我是 dot.net 的初学者,谁能建议我如何删除获取的下拉列表中的特定值。
这里我提到 fetched 的原因意味着下拉列表是使用 sql 从 table 生成或从中获取的。
sqlquery=SELECT DISTINCT rtrim(ltrim(C.Cust_name)) as Cust_name FROM table1 A inner join table2 B on A.cust_code = B.Cust_Code
SqlCommand cmd = new SqlCommand(sqlquery, conn);
SqlDataReader sr = cmd.ExecuteReader();
while (sr.Read())
{
{
cmb_cust.Items.Add(sr["Cust_name"].ToString());
}
}
foreach (ListItem li in cmb_cust.Items)
{
{
if (li.Value == "value1")
cmb_cust.Items.Remove(li);
}
}
如果我处理上述语句,我面临 集合被修改枚举操作可能无法执行,我可以得到任何其他解决方案,如将列表交换为临时列表并处理操作.从 sql.
获取后,我不需要 value1比事后删除更好的是,一开始就不要添加它。
while (sr.Read())
{
var txt = sr["Cust_name"].ToString();
if (txt != "value1")
cmb_cust.Items.Add(txt);
}
或者您可以在 SQL 查询中排除它。
SELECT tbl1.Cust_name
FROM
(
SELECT DISTINCT rtrim(ltrim(C.Cust_name)) as Cust_name
FROM table1 A
inner join table2 B on A.cust_code = B.Cust_Code
) As tbl1
where
tbl1.Cust_name != 'value1'
出现该异常的原因是您无法在枚举集合时从集合中删除项目。如果你想删除一个项目,你应该写:
cmb_cust.Items.Remove("value1");
您不能使用 foreach
循环修改集合。将其更改为 for
循环,这应该可以工作。
甚至比在添加过程中跳过它更好的是根本不从数据库中获取它:
sqlquery = @"SELECT DISTINCT rtrim(ltrim(C.Cust_name)) as Cust_name
FROM table1 A inner join table2 B on A.cust_code = B.Cust_Code
WHERE Cust_name <> 'value1'";
;-)