Raj Negi Ответов: 1

вставка нескольких значений из списка в столбец sql DB


Я пытаюсь сохранить несколько значений, выбранных пользователем в столбце sql при нажатии кнопки.
<asp:ListBox ID="ListBox1" runat="server" Height="149px" SelectionMode="Multiple" Width="113px">
        <asp:ListItem Value="1">Vinz</asp:ListItem>
        <asp:ListItem Value="2">Jhen</asp:ListItem>
        <asp:ListItem Value="3">Chris</asp:ListItem>
        <asp:ListItem Value="4">Shynne</asp:ListItem>
        <asp:ListItem Value="5">Chu</asp:ListItem>
        <asp:ListItem Value="6">Mark</asp:ListItem>
        <asp:ListItem Value="7">Lilian</asp:ListItem>
        </asp:ListBox>
<asp:Button ID="Button1" runat="server" Text="Save" onclick="Button1_Click" />

protected void Button1_Click(object sender, EventArgs e)
    {
        SqlCommand cmd = new SqlCommand("INSERT INTO tbl_adsubcategory (ad_id,subcategory) VALUES (@ad_id,@subcategory)", con);
        try
        {
            con.Open();
            for (int i = 0; i < ListBox1.Items.Count; i++)
            {
                cmd.Parameters.AddWithValue("@ad_id", 10012);
                cmd.Parameters.AddWithValue("@subcategory" , ListBox1.Items[i].Value);
                cmd.ExecuteNonQuery();
            }
            con.Close();
        }
        catch (Exception)
        {
            throw;
        }
    }

Я хочу получить такой результат: если пользователь выберет 3,5 и 7, то результат будет следующим
подкатегория ad_id
10012 3
10012 5
10012 7

1 Ответов

Рейтинг:
11

DamithSL

очистите параметры на каждой итерации и добавьте проверку для проверки выбора

con.Open();
for (int i = 0; i < ListBox1.Items.Count; i++)
{
    if (ListBox1.Items[i].Selected)
    {
        cmd.Parameters.Clear();
        cmd.Parameters.AddWithValue("@ad_id", 10012);
        cmd.Parameters.AddWithValue("@subcategory" , ListBox1.Items[i].Value);
        cmd.ExecuteNonQuery();
    }
}


Raj Negi

спасибо.

DamithSL

добро пожаловать!