最初に私のコードは次のとおりです。
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)
誰かがアイデアを持っていることを願っていますか?