datagridview 中combobox 的displaymember和 valuemember 不一致就报错

黄开泰 2021-02-18 10:55:15
小弟刚开始学习C# winforms ,跟着培训老师视频做winform的练习出现了一个问题,
一旦datagridview 中combobox 的displaymember和 value member没有一致,就报错


这是出现问题的 语句
string majorSql = " select distinct tblmajor.majorname,tblmajor.majorID from TestClass" +
" left join tblmajor on TestClass.majorid = tblmajor.majorid";
DataTable majorDt = Sqlhelper.Sqlhelper.ExecuteDataTable(majorSql);
DataGridViewComboBoxColumn cbomajorname = DGVStu.Columns["majorname"] as DataGridViewComboBoxColumn;
cbomajorname.DisplayMember = "majorname";
cbomajorname.ValueMember = "majorid";
cbomajorname.DataSource = majorDt;

这是没出现问题的语句
string majorSql = " select distinct tblmajor.majorname,tblmajor.majorID from TestClass" +
" left join tblmajor on TestClass.majorid = tblmajor.majorid";
DataTable majorDt = Sqlhelper.Sqlhelper.ExecuteDataTable(majorSql);
DataGridViewComboBoxColumn cbomajorname = DGVStu.Columns["majorname"] as DataGridViewComboBoxColumn;
cbomajorname.DisplayMember = "majorname";
cbomajorname.ValueMember = "majorname";
cbomajorname.DataSource = majorDt;

...全文
217 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄开泰 2021-02-19
  • 打赏
  • 举报
回复
https://blog.csdn.net/u013992365/article/details/54292338?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.control 这个大哥说的很清楚了。 https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.datagridviewcomboboxcolumn?redirectedfrom=MSDN&view=net-5.0。 参照msdn, 一种典型方案是将控件 DataGridView 绑定到父数据库表,并将下拉列表绑定到相关的子表。 例如,您可以将DataGridView 控件绑定 到一个 包含列ProductID的Orders 表 ,并将 column DataSource 属性设置 为包含列 ProductID 和列ProductName 的Products 表 。 在这种情况下,您可以将 "列" "ProductID"的 DataPropertyName 属性设置为 Orders.ProductID以填充该列的单元值 。 但是,若要在单元和下拉列表中显示实际产品名称,则可以 Products 通过将 ValueMember 属性设置为 "ProductID" 并将 DisplayMember 属性设置为 "ProductName",将这些值映射到表。 ------吐槽下官方msdn因为关键字有超链接导致 ,段落语句不通顺 ,我已做了调整---------- 总之 cbocol这一列的DataPropertyName 为datagirdview中的绑定大表的某一列名称一致 而这个一列的取值要与cbocol.DataSource 中的一列对应 并且 cbocol.ValueMember 也是与上述两列 一致 cbocol.DisplayMember 只是一个显示的映射,不是实际值
黄开泰 2021-02-18
  • 打赏
  • 举报
回复
报的错是datagridviewcomboboxcell值无效

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧