C# 所选列表项未被识别为所选
首先,这是我的代码:C# 所选列表项未被识别为所选,c#,if-statement,listbox,selected,listitem,C#,If Statement,Listbox,Selected,Listitem,首先,这是我的代码: foreach (ListItem l in l_roles.Items) { if (l.Selected) { SqlCommand find_r = new SqlCommand("SELECT id FROM roles WHERE rolename=@rolename", conn);
foreach (ListItem l in l_roles.Items)
{
if (l.Selected)
{
SqlCommand find_r = new SqlCommand("SELECT id FROM roles WHERE rolename=@rolename", conn);
find_r.Parameters.AddWithValue("@rolename", l.Text);
f = find_r.ExecuteScalar().ToString();
SqlCommand fill_g_r = new SqlCommand("INSERT INTO groups_roles (group_id, role_id) VALUE (@group_id, role_id)", conn);
fill_g_r.Parameters.AddWithValue("@group_id", l_gr_id.Text);
fill_g_r.Parameters.AddWithValue("@role_id", f);
fill_g_r.ExecuteNonQuery();
}
}
当我在调试模式下测试这段代码时,在列表框中选择一个项目并点击按钮,什么也没发生
如果我在“foreach”的末尾设置断点,我可以看到:
if (l.Selected)
这是错误的。
l.Text
是我以前选择的正确列表项。
我还尝试了其他可能性,如:
if(!l.selected) or if(l.selected == true)
我希望任何人都有想法?如果您的项目是Asp.Net,并且您在页面加载事件中填充了listBox控件,只需放置此控件:
if(!IspostBack)
this.LoadListBox(); //your fill method
因为,当您发布页面时,页面加载事件会触发并再次填充您的列表框。所以您的选择正在清除。
如果(!l.selected)或如果(l.selected==true)
应该是如果(!l.selected | | l.selected==true)
在c中#不,我不是指编程上的“或”:)我只是尝试了这两个选项