1

複数のアイテムを選択できるチェックボックス付きのドロップダウンを使用しており、それを使用してデータを詳細ビューに挿入しています。私の問題は、ドロップダウンから複数のアイテムを選択すると、ドロップダウンボックスから複数のアイテムを選択した場合でも、最初に選択されたアイテムのみが挿入されることです。私はここで何が間違っているのですか?pls。ヘルプ

 protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)
    {

        foreach (ListItem listItem in cblCustomerList.Items)
        {
            if (listItem.Selected)
            {

                string GroupName = cblCustomerList.SelectedValue;


            sqlcon.Open();
            string eno = ((TextBox)DetailsView1.FindControl("txteno")).Text.ToString();
            string empname = ((TextBox)DetailsView1.FindControl("txtempname")).Text.ToString();
            string sal = ((TextBox)DetailsView1.FindControl("txtsal")).Text.ToString();
            SqlCommand cmd = new SqlCommand("select eno from emp where eno = '" + eno + "'", sqlcon);
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                lblmsg.Text = "Employee No already exists";
            }
            else
            {
                dr.Close();
                sqlcmd = new SqlCommand("insert into emp values('" + eno + "', '" + empname + "','" + sal + "' , '" + GroupName + "')", sqlcon);
                sqlcmd.ExecuteNonQuery();
              //  DetailsView1.ChangeMode(DetailsViewMode.Insert);
            }
            sqlcon.Close();
           // LoadDet();
            }

        }
    }
4

1 に答える 1

1

まず、ListBoxのSelectedItemsプロパティを使用する必要があります。これにより、選択したすべてのアイテムのコレクションが提供されます(その後、それらの値を取得できます)。すべての項目を手動で確認するよりも簡単です。

コードの問題は、のプロパティを使用する一方で、のSelectedValueプロパティを使用する必要があることです。cblCustomerListValuelistItem

これを試して:

protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)
{

    foreach (ListItem listItem in cblCustomerList.Items)
    {
        if (listItem.Selected)
        {

            string GroupName = listItem.Value; // fix is here


        sqlcon.Open();
        string eno = ((TextBox)DetailsView1.FindControl("txteno")).Text.ToString();
        string empname = ((TextBox)DetailsView1.FindControl("txtempname")).Text.ToString();
        string sal = ((TextBox)DetailsView1.FindControl("txtsal")).Text.ToString();
        SqlCommand cmd = new SqlCommand("select eno from emp where eno = '" + eno + "'", sqlcon);
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.Read())
        {
            lblmsg.Text = "Employee No already exists";
        }
        else
        {
            dr.Close();
            sqlcmd = new SqlCommand("insert into emp values('" + eno + "', '" + empname + "','" + sal + "' , '" + GroupName + "')", sqlcon);
            sqlcmd.ExecuteNonQuery();
          //  DetailsView1.ChangeMode(DetailsViewMode.Insert);
        }
        sqlcon.Close();
       // LoadDet();
        }

    }
}
于 2012-12-13T03:06:08.557 に答える