使用 MS Access 中的 Linq 填充 ComboBox
Posted
技术标签:
【中文标题】使用 MS Access 中的 Linq 填充 ComboBox【英文标题】:Fill ComboBox with Linq from MS Access 【发布时间】:2017-02-18 14:00:24 【问题描述】:我是 C# 和 Linq 的新手,想用 MS Access 的 Linq 填写 ComboBox
。但是如果我调试代码,ComboBox
是空的。
我阅读了一些较旧的帖子,但没有帮助。失败在哪里?
private void Form1_Load(object sender, EventArgs e)
try
connection.Open();
label1.Text = "OK";
PoolDataSet pool = new PoolDataSet();
comboBoxPool.DisplayMember = "Pool-Name";
comboBoxPool.ValueMember = "ID";
comboBoxPool.DataSource = (from x in pool.Pools
select x._Pool_Name).ToList();
connection.Close();
catch (Exception ex)
MessageBox.Show("Error" + ex);
【问题讨论】:
将comboBoxPool.DisplayMember = "Pool-Name"; comboBoxPool.ValueMember = "ID";
移动到这一行的下方:comboBoxPool.DataSource
。
然后,出现“无法绑定到新的显示成员”的异常...
你是剪切并粘贴那两行还是复制它们?
而且你不能将ComboBox
绑定到字段,你的代码应该是这样的comboBoxPool.DisplayMember = "_Pool_Name";
尝试了两种变体复制/剪切。同样的问题。当我更改为 DisplayMember = "_Pool_Name"; 时出现同样的错误
【参考方案1】:
谢谢,问题是要填充我的池对象。我通过添加 .Fill() 得到它:
connection.Open();
connectionLabel.Text = "Connection successful!";
PoolsDataSet pool = new PoolsDataSet();
(new PoolsDataSetTableAdapters.PoolsTableAdapter()).Fill(pool.Pools);
comboBoxPool.DataSource = (from x in pool.Pools
select x.ID).ToList();
comboBoxPool.DisplayMember = "ID";
connection.Close();
它正在运行;)
【讨论】:
以上是关于使用 MS Access 中的 Linq 填充 ComboBox的主要内容,如果未能解决你的问题,请参考以下文章
MS Access 保留子表单中的 ID 字段,填充父表单中的 ID