【发布时间】:2018-05-21 01:39:01
【问题描述】:
我用c#创建了有两个组合框的winform
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