С помощью этого кода я заполняю раскрывающийся список с флажком для множественного выбора,
sql = @String.Format(" SELECT p FROM `dotable`; ");
using (OdbcConnection cn =
new OdbcConnection(ConfigurationManager.ConnectionStrings["cn"].ConnectionString))
{
using (OdbcCommand cmd = new OdbcCommand(sql, cn))
{
cmd.CommandType = CommandType.Text;
cmd.Connection.Open();
using (OdbcDataAdapter sda = new OdbcDataAdapter(cmd))
{
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
pddl.DataSource = dt;
pddl.DataTextField = "p";
pddl.DataValueField = "p";
pddl.DataBind();
}
}
}
}
Мне нужно сравнить значения, хранящиеся в базе данных, со значениями таблицы, которая заполняет раскрывающийся список.
Если значение, сохраненное в базе данных, равно значению в раскрывающемся списке, соответствующий флажок установлен.
В раскрывающемся списке у меня есть:
Peter
Mike
Myriam
Roger
Marilyn
Barbara
В базе данных, хранящейся:
Mike; Marilyn;
Я пробовал это решение без успеха, потому что в DropDownList значение соответствующего флажка не выбрано.
using (OdbcCommand cmd = new OdbcCommand(sql, cn))
{
cmd.CommandType = CommandType.Text;
cmd.Connection.Open();
OdbcDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string p = dr["p"].ToString();
string[] w = reader["w"].ToString().Split(';');
foreach (string x in w)
{
foreach (ListItem item in pddl.Items)
{
if (x.ToString().Trim() == p.ToString().Trim())
{
Response.Write(x.ToString().Trim() + " >>> " + p.ToString().Trim() + "<br />");
item.Selected = true;
}
}
}
}
}
Любые идеи?
Первое редактирование
Я пробовал это:
string[] w = reader["w"].ToString().Split(';');
foreach (string x in w)
{
while (dr.Read())
{
string p = dr["p"].ToString();
Response.Write("p = " + p.ToString() + "<br />");
Response.Write("w = " + x.ToString().Trim() + "<br /><br />");
if (x.ToString().Trim() == p.ToString().Trim())
{
foreach (ListItem item in pddl.Items)
{
Response.Write(x.ToString().Trim() + " >>> " + p.ToString().Trim() + "<br />");
item.Selected = true;
}
}
}
}
Но вывод:
p = Peter
x = Mike
p = Mike
x = Mike
p = Myriam
x = Mike
p = Roger
x = Mike
p = Marilyn
x = Mike
p = Barbara
x = Mike
В переменной 'p' у меня есть все значения из выпадающего списка.
В переменной 'x' у меня есть все значения, хранящиеся в базе данных.
Но в переменной 'x' у меня есть только значение 'Mike', а не значение 'Miryam'.
Есть идеи?