我在列表框中有值,我必须从中选择一个或多个值并将其保存在数据库中。但是当我选择多个值(例如:选择了2个项目)时,它只保存我选择的项目的第一个值(例如:两次)。
以下是要保存在数据库中的查询。
foreach (ListItem li in lbMess.Items)
{
if (li.Selected)
{
strSQL += string.Format("INSERT INTO message(messageContent, messageDate, staffCode) VALUES ('{0}',getdate(),'{1}');", txtMess.Text, lbMess.SelectedValue);
}
}
答案 0 :(得分:4)
在插入语句中,您没有使用正在迭代的li
。
试试这个:
strSQL += string.Format("INSERT INTO message(messageContent,messageDate,staffCode) VALUES ('{0}',getdate(),'{1}');", txtMess.Text, li.Text);
答案 1 :(得分:1)
Youu正在使用lbMess.SelectedValue
,默认情况下只会获取第一个项目,但您正在遍历所有项目。
确保使用li
对象的值。 (li.Value
或li.Text
取决于您的实施方式)
答案 2 :(得分:1)
Youu正在使用lbMess.SelectedValue,默认情况下只会获取 第一项。
试试这个
foreach (ListItem li in lbMess.Items)
{
if (li.Selected)
{
strSQL += string.Format("INSERT INTO message(messageContent,messageDate,staffCode) VALUES ('{0}',getdate(),'{1}');", txtMess.Text, li.Value);
}
}
或强>
foreach (ListItem li in lbMess.Items)
{
if (li.Selected)
{
strSQL += string.Format("INSERT INTO message(messageContent,messageDate,staffCode) VALUES ('{0}',getdate(),'{1}');", txtMess.Text, li.Text);
}
}
答案 3 :(得分:0)
我相信你应该迭代SelectedItems属性,如下所示:
foreach(var item in listBox1.SelectedItems)
{
// Insert into DB.
strSQL += string.Format("INSERT INTO message(messageContent,
messageDate,staffCode) VALUES ('{0}',getdate(),'{1}');",
txtMess.Text, (String)item);
}