C# DataGridViewComboxCell绑定-“值无效”

C# DataGridViewComboxCell绑定-“值无效”,c#,datagridview,datagridviewcombobox,C#,Datagridview,Datagridviewcombobox,我知道有一长串关于同一主题的问题,但我找不到答案。因此,我想在DataGridView中添加一个combobox列。我已经在SQL中构建了一个返回ID/DisplayValue的SP。这是查询/结果集 现在在VS中,我构建了一个ds,只需几个过程 现在,我添加了具有以下设置的列 我的大数据集列IDCategory返回 因此,当我尝试在formLoad上运行此查询以查看我的数据时 cmd = new SqlCommand("spProduse_Show", conn); c

我知道有一长串关于同一主题的问题,但我找不到答案。因此,我想在DataGridView中添加一个combobox列。我已经在SQL中构建了一个返回ID/DisplayValue的SP。这是查询/结果集

现在在VS中,我构建了一个ds,只需几个过程

现在,我添加了具有以下设置的列

我的大数据集列IDCategory返回

因此,当我尝试在formLoad上运行此查询以查看我的数据时

cmd = new SqlCommand("spProduse_Show", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            try
            {
                SqlDataAdapter sda = new SqlDataAdapter();
                sda.SelectCommand = cmd;
                DataTable dtProduse = new DataTable();
                sda.Fill(dtProduse);
                spProduseShowBindingSource.DataSource = dtProduse;
                dataGridView1.DataSource = spProduseShowBindingSource;
                sda.Update(dtProduse);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
我从标题中得到了错误,有什么想法吗?我在另一个专栏中也做了同样的事情,一切都很好,但由于某种原因,这篇文章没有,我也无法理解

VS还在form_Load事件中添加了这两行


好的,在搜索了一点之后,我设法找到了我的问题。问题在于我的列的数据类型。我的DataPropertyName是Int16,ValueMember是Int32。无论如何,我已经将ValueMember修改为Int16,现在它可以工作了。我已经发布了这个答案,以防其他人遇到同样的情况。对数据类型要格外小心

 // TODO: This line of code loads data into the 'dsProduse.spLK_CategoriiProduse' table. You can move, or remove it, as needed.


   this.spLK_CategoriiProduseTableAdapter.Fill(this.dsProduse.spLK_CategoriiProduse);
    // TODO: This line of code loads data into the 'dsProduse.spLK_Furnizori' table. You can move, or remove it, as needed.
    this.spLK_FurnizoriTableAdapter.Fill(this.dsProduse.spLK_Furnizori);