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