DataGridViewComboBoxCell 绑定 - “值无效”
Posted
技术标签:
【中文标题】DataGridViewComboBoxCell 绑定 - “值无效”【英文标题】:DataGridViewComboBoxCell Binding - “value is not valid” 【发布时间】:2015-04-21 13:53:52 【问题描述】:我知道有很多关于同一主题的问题,但我找不到答案。所以我想在我的 DataGridView 中添加一个组合框列。我在 SQL 中构建了一个返回 ID
/DisplayValue
的 SP。这是查询/结果集。
所以现在在 VS 中,我用很少的程序构建了一个 ds。
现在我添加了具有以下设置的列。
我的大数据集列 IDCategorie 返回
因此,当我尝试在 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
事件中添加了这两行
// 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);
【问题讨论】:
【参考方案1】:好的,经过一番搜索,我设法找到了我的问题。问题在于我的列的数据类型。我的DataPropertyName
是Int16
,我的ValueMember 是Int32
。无论如何,我已经将我的ValueMember
修改为Int16
,现在它可以工作了。我已经发布了这个答案,以防其他人遇到同样的情况。数据类型要格外小心!!!
【讨论】:
以上是关于DataGridViewComboBoxCell 绑定 - “值无效”的主要内容,如果未能解决你的问题,请参考以下文章
DataGridViewComboBoxCell 的 SelectedIndex? VB.NET
“DataGridViewComboBoxCell 值无效。”属性数据源
DataGridViewComboBoxCell 绑定 - “值无效”
选择后 DataGridViewComboBoxCell 显示 Value 成员而不是 Display 成员