0

ADO.net では、コンボボックスから ID を取得したい場合は、次のようにします。

int idToGet = int.parse(tbCategory.SelectedValue.ToString());

その後、

しかし、コンボボックスを EF にバインドすると、エラーInput string was not in a correct format が表示されます。したがって、現在の値は { id = 7, category = TESTING } と表示され、通常とは異なります。

ここに私のコードスニペットがあります:

    public void loadCategory()
    {
        tbCategory.DataSource = null;

        var listCategoryObj = new malsic_inventoryEntities();

        var query = from cat in listCategoryObj.Category
                    //join cat in listItmObj.Category on n.id_category equals cat.id
                    select new { cat.id,cat.category };

        if (query.Count() > 0)
        {
            tbCategory.DataSource = query.ToList();
            tbCategory.DisplayMember = "category";
            tbCategory.ValueMember = "id";
            tbCategory.Invalidate();
        }
        else
        {
            tbSubCategory.Enabled = false;
        }

    }
    public void loadSubcategory()
    {
        tbSubCategory.DataSource = null;

        int id_category_current = int.Parse(tbCategory.SelectedItem.Value.ToString());

        var listSubCategoryObj = new malsic_inventoryEntities();

        var query = from SubCat in listSubCategoryObj.SubCategories
                    where SubCat.id_category == id_category_current
                    select new { SubCat.id, SubCat.subcategory };

        if (query.Count() > 0)
        {
            groupBox1.Enabled = true;

            tbSubCategory.DataSource = query.ToList();
            tbSubCategory.DisplayMember = "subcategory";
            tbSubCategory.ValueMember = "id";
            tbSubCategory.Invalidate();
        }
        else
        {
            groupBox1.Enabled = false;
        }

    }

私は何か間違ったことをしますか?

4

1 に答える 1