Отключить предварительно загруженный комбинированный список в c # - PullRequest
0 голосов
/ 04 октября 2018

Так что это код, который я унаследовал, он загружает все комбо-боксы из БД.Мое требование основано на значении, выбранном из первого поля со списком, который должен быть загружен вторым.

  /// <summary>
    /// Pre fill all comboBoxes with items loaded from db
    /// </summary>
    /// <param name="sender">The source of the event.</param>
    /// <param name="e">The <see cref="FormClosingEventArgs"/> instance containing the event data.</param>
    private void Upload_Load(object sender, EventArgs e)
    {

        try
        {
            fillGroupCombobox();

            // load group
            //groupIds = new List<string>();
            //groupIds = getGroupIds();
            if (groupIds.Count != 0)
            {
                group = new StringBuilder();
                string lastItem = groupIds[groupIds.Count - 1];
                foreach (string item in groupIds)
                {
                    if (item != lastItem)
                        group.Append(item + ",");
                    else group.Append(item);
                }
                // load commodity
                fillCommodityCombobox(group);
                fillPhysicalAttribute();
                fillProdPracComboBox();
                fillUtilPracComboBox();
                fillStatTypeCombobox();
            }
        }

              private void fillCommodityCombobox(StringBuilder group)
    {
        commodities = new List<string>();
        string sql = @"SELECT [ERSCommoditySubCommodity_Desc] FROM " + schemaName + "[ERSCommoditySubCommodity_LU] WHERE [ERSCommoditySubCommodity_GroupID] IN ( " + group + " ) ORDER BY [ERSCommoditySubCommodity_Desc]";

        DataTable dt = GetData(sql);
        DataRow[] dr = dt.Select();
        foreach (DataRow row in dr)
        {
            commodities.Add(row["ERSCommoditySubCommodity_Desc"].ToString());
        }
        comboBox_commodity.DataSource = commodities;
        comboBox_commodity.SelectedItem = null;

    }

Это была моя попытка, но всякий раз, когда я пытаюсь, она пытается вызвать весь комбинированный список,

         private void fillCommodityCombobox(StringBuilder group)
    {

       string selectedGroup = this.comboBox_Group.GetItemText(this.comboBox_Group.Text);
        commodities = new List<string>();
        string sql = @"SELECT [ERSCommoditySubCommodity_Desc] FROM " + schemaName + "[ERSCommoditySubCommodity_LU],[ERSGroup_LU] WHERE [ERSCommoditySubCommodity_GroupID] = ( " + group + " ) and ERSGroup_Desc= ( " + selectedGroup + " )  ORDER BY [ERSCommoditySubCommodity_Desc]";

        DataTable dt = GetData(sql);
        DataRow[] dr = dt.Select();
        foreach (DataRow row in dr)
        {
            commodities.Add(row["ERSCommoditySubCommodity_Desc"].ToString());
        }
        comboBox_commodity.DataSource = commodities;
        comboBox_commodity.SelectedItem = null;

    }

Есть идеи для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...