【问题标题】:Fill ComboBox with Linq from MS Access使用 MS Access 中的 Linq 填充 ComboBox
【发布时间】: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"; 时出现同样的错误

标签: c# linq ms-access combobox


【解决方案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();

它正在运行;)

【讨论】:

    猜你喜欢
    • 2014-03-06
    • 2019-05-12
    • 2019-11-24
    • 1970-01-01
    • 2018-12-21
    • 2014-10-07
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    相关资源
    最近更新 更多