【问题标题】:How to refresh combobox winform c#如何刷新组合框winform c#
【发布时间】:2018-05-21 01:39:01
【问题描述】:

我用c#创建了有两个组合框的winform

The form look like this

combobox1 从数据库中选择公司

combobox2 从数据库中选择项目取决于来自combobox1 的公司

加载表单后一切正常,但是当我在 combobox1 中更改公司时,我想刷新 combobox2

这是我的代码

using System;
using System.Data;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;

namespace WindowsFormsApp3
{
    public partial class Form_AC071503 : Form
    {
        public Form_AC071503()
        {
            InitializeComponent();
        }

        DataSet ds = new DataSet();

        OracleCommand cmd1;
        OracleDataAdapter da1;

        OracleCommand cmd2;
        OracleDataAdapter da2;

        private void Form_AC071503_Load(object sender, EventArgs e)
        {
            cmd1 = new OracleCommand("SELECT company,company_name from COMPANIES", Class_All.Connection);
            da1 = new OracleDataAdapter(cmd1);
            da1.Fill(ds, "COMPANIES");
            input_company.DataSource = ds.Tables["COMPANIES"];
            input_company.DisplayMember = "company_name";
            input_company.ValueMember = "company";

            cmd2 = new OracleCommand("SELECT project,project_name from PROJECTS where COMPANY = '" + input_company.SelectedValue.ToString() + "'", Class_All.Connection);
            da2 = new OracleDataAdapter(cmd2);
            da2.Fill(ds, "PROJECTS");
            input_project.DataSource = ds.Tables["PROJECTS"];
            input_project.DisplayMember = "project_name";
            input_project.ValueMember = "project";
        }

        private void Input_company_SelectedIndexChanged(object sender, EventArgs e)
        {
            /*i try to use the same code in Form_AC071503_Load like this

              cmd2 = new OracleCommand("SELECT project,project_name from PROJECTS where COMPANY = '" + input_company.SelectedValue.ToString() + "'", Class_All.Connection);
              da2 = new OracleDataAdapter(cmd2);
              da2.Fill(ds, "PROJECTS");
              input_project.DataSource = ds.Tables["PROJECTS"];
              input_project.DisplayMember = "project_name";
              input_project.ValueMember = "project";

              but not work because the list project not refresh but increased with new value*/ 
        }
    }
}

谢谢你的建议。

【问题讨论】:

  • 看起来您实际上还没有在Input_company_SelectedIndexChanged 处理程序中实现任何逻辑。这就是您放置刷新第二个组合框的代码的地方。使用您在 Form_AC071503_Load 中的代码作为入门指南。
  • input_project.DataBind()
  • 这是你想要的吗? update combobox

标签: c# oracle winforms visual-studio combobox


【解决方案1】:

你需要在combobox1中添加ValueChanged事件。

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 2011-05-13
    • 2010-11-29
    • 1970-01-01
    相关资源
    最近更新 更多