【问题标题】:Populating a combobox with a query from my dataset使用来自我的数据集的查询填充组合框
【发布时间】:2013-10-25 18:31:22
【问题描述】:

我想使用我在数据集中添加的查询来填充组合框?查询应根据先前的组合框选择提供输出。有关如何编码的任何帮助

这是我目前的代码,但它不想工作


好的,所以我更新了我的代码,但现在它为我提供了整个表格的输入,但我希望它可以通过我在 cmbSchool 中选择的任何选项进行过滤。我现在如何使用参数过滤它?

这是我的新代码

 private void cmbSchool_SelectedIndexChanged(object sender, EventArgs e)
    {

        int ischoolid = Convert.ToInt16(cmbSchool.SelectedValue);

        try
        {
            cmbClassRoomName.DataSource = this.geared4MathDataSet.ClassRoom;
            cmbClassRoomName.ValueMember = "ClassRoomID";
            cmbClassRoomName.DisplayMember = "ClassRoomName";
            //this.classRoomTableAdapter.FillBySchool(this.geared4MathDataSet.ClassRoom, ischoolid);
            lblClassroomName.Visible = true;
            cmbClassRoomName.Visible = true;
        }
        catch (System.Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.Message);
        }

    }

【问题讨论】:

  • 不想工作真的没有太多描述性。你有一个try catch,错误信息是什么?或者如果没有消息什么不起作用?
  • 错误信息是:无法绑定到新值成员。参数名称:值
  • ValueMember 和 DisplayMember 应该是数据源中存在的字段的名称。您的 Convert.ToString(.....) 返回的值是多少。如果不是解释错误的字段名称。使用临时字符串变量接收 Convert.ToString() 的结果,并使用调试器检查返回的值。 (顺便说一句,您需要将其转换为字符串是一个死的赠品,即某些东西不是真正的字段名称)
  • 好的,谢谢 :) 现在去检查 :)
  • 请查看我编辑的帖子 :)

标签: c# sql combobox


【解决方案1】:

要过滤您的ClassRoom 类型的数据表以仅返回选择schoolid 的记录,您可以编写

cmbClassRoomName.DataSource = this.geared4MathDataSet.ClassRoom
                              .Where(x => x.IDSchool == ischoolid)
                              .CopyToDataTable();

当然,这假设您在 ClassRoom 表中有一个名为 IDSchool 的字段。您可以将此处使用的名称调整为正确的名称

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2019-07-15
    相关资源
    最近更新 更多