【问题标题】:populate combobox with datatable select query [closed]使用数据表选择查询填充组合框 [关闭]
【发布时间】:2013-08-05 12:23:36
【问题描述】:

我有一个包含客户列表的数据表,然后将其分配给组合框的数据源。

然后我有另一个包含客户站点列表的数据表,当组合框发生更改时,它应该对站点数据表执行选择并仅返回匹配并填充站点组合框的行。

问题是它返回 System.Data.DataRow 而不是 sitename 列中包含的数据!

public frmTechSupportCall()
{
    cboxClientName.DataSource = parentfrm._ClientsList;
    cboxClientName.DisplayMember = "companyname";
    cboxClientName.ValueMember = "client_id";
    cboxClientName.SelectedIndex = 1;
    cboxClientName.Refresh();
}
private void cboxClientName_SelectedIndexChanged(object sender, EventArgs e)
{
    //var temp = cboxClientName.SelectedValue;            

    if (cboxClientName.SelectedValue.GetType().ToString() == "System.Int32")
    {
        //DataRow[] dr = parentfrm._ClientsSites.Select(@"client_id = " + cboxClientName.SelectedValue);                
        cboxClientSite.DisplayMember = "sitename";
        cboxClientSite.ValueMember = "site_id";
        cboxClientSite.DataSource = parentfrm._ClientsSites.Select(@"client_id = " + cboxClientName.SelectedValue);
        //cboxClientSite.BindingContext = this.BindingContext;
        //_ClientsList.Rows.InsertAt(drow, 0);
        //cboxClientSite.Items.Add(new object[] { 0, "--Please Select --" });
        //cboxClientSite.SelectedIndex = 0;
    }
}

【问题讨论】:

  • 问题是什么?
  • DJ Kraze 请完整阅读问题,它指出组合框返回 System.Data.DataRow 而不是数据!!
  • 现在不是问题是 Neo 你所说的是he combox returns System.Data.DataRow instead of the data! 这不是问题
  • @Neo 更喜欢它。

标签: c# combobox datatable dataset


【解决方案1】:

这样做

cboxClientSite.DataSource = parentfrm._ClientsSites.Select(@"client_id = " + cboxClientName.SelectedValue).CopyToDataTable();

【讨论】:

  • 错误 79 'System.Array' 不包含 'ToDataTable' 的定义,并且找不到接受类型为 'System.Array' 的第一个参数的扩展方法 'ToDataTable'(您是否缺少使用指令还是程序集引用?)
  • @Neo 输入错误,它是 copytodatatable,我已更新
  • 这个解决了这个问题,我已经编辑了代码以显示完整的语法
  • @Neo 你的问题解决了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 2014-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多