首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >datagridview中的外键数据绑定-包含多行的组合框

datagridview中的外键数据绑定-包含多行的组合框
EN

Stack Overflow用户
提问于 2020-06-11 20:14:42
回答 1查看 74关注 0票数 0

我是个软件开发新手,需要一些帮助。

我正在创建一个具有DataGridView的WinForm。DataGridView将显示包含FromPortID和ToPortID的表计划。这两个字段的值应该与相关表PortCode中的外键匹配。PortCode表有PortCodeID和PortName。

在DataGridView中,我现在有了用于FromPort和ToPort的PortCodeID。我需要允许用户输入新记录,但他们应该输入或选择PortCodeID,而不是输入PortName。

为此,我创建了一个ComboBox专栏:

代码语言:javascript
复制
var adaper = new SqlDataAdapter("SELECT * FROM PortCode order by PortName", Helper.CnnVal("ShipMaster"));
var dataTable = new DataTable();
adaper.Fill(dataTable);
var ComboBoxColumn = new DataGridViewComboBoxColumn();
ComboBoxColumn.Name = "FromPortComboBoxColumn";
ComboBoxColumn.HeaderText = "FromPort";
ComboBoxColumn.DataSource = dataTable;
ComboBoxColumn.DataPropertyName = "FromPortID";
ComboBoxColumn.DisplayMember = "PortName";
ComboBoxColumn.ValueMember = "PortCodeId";
this.dgv.Columns.Add(ComboBoxColumn); 

这是可行的。如果我更改了ComboBox中的选择,相关的FromPortID也会更改。但问题是PortCode表包含7000条记录。打开下拉列表需要2-5秒-这是针对包含此ComboBox的每个单元格。我添加了自动补全功能,它可以正常工作。但性能仍然很差。

我猜在这种情况下使用ComboBox不是最好的设计。作为一个有经验的程序员,你能给我一些关于如何实现这一点的反馈吗?)

EN

回答 1

Stack Overflow用户

发布于 2020-06-16 14:50:40

我用一个自定义的查找表单替换了ComboBox。效果要好得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62324170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档