简体   繁体   English

从combobox1获取combobox2的值

[英]Get value of combobox2 from combobox1

I got 2 comboboxes on my form(in the form load event). 我的表单上有2个组合框(在表单加载事件中)。 First combobox gets a value from a select statement once the form loads. 表单加载后,第一个组合框从select语句获取一个值。 I want to use that value in my second combobox. 我想在第二个组合框中使用该值。 Here is my code: 这是我的代码:

1ste Combobox = cbDelivery 1ste组合框= cb交付

        OracleConnection conn = new OracleConnection();
        conn.ConnectionString = "User Id=christob;Password=CHRISTOB;Host=poseidon;Pooling=true;Min Pool    Size=0;Max Pool Size=100;Connection Lifetime=0;Port=1522;Sid=GLODCD";

        conn.Open();

        string query;
        query = "select distinct dd.delivery_bay_code from dc_delivery dd, dc_grv dg where delivery_complete_datetime is null and dd.dc_delivery_id_no = dg.dc_delivery_id_no and dd.delivery_announce_datetime is null";
        OracleCommand cmd = new OracleCommand(query, conn);
        OracleDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            cbDelivery.Items.Add(dr["delivery_bay_code"]);
        }
        dr.Close();
        conn.Close();

2de Combobox = cbOrderNo 2de组合框= cbOrderNo

This combobox is in: 该组合框位于:

private void cbDelivery_SelectedIndexChanged(object sender, EventArgs e) 私有无效cbDelivery_SelectedIndexChanged(对象发送者,EventArgs e)

so as soon as I select a value from 1ste combobox my 2nd combobox query must populate the 2nd combobox. 因此,一旦我从1ste组合框中选择一个值,我的第二个组合框查询就必须填充第二个组合框。 See code: 看到代码:

        OracleConnection conn = new OracleConnection();
        conn.ConnectionString = "User Id=christob;Password=CHRISTOB;Host=poseidon;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;Port=1522;Sid=GLODCD";
        conn.Open();
        string query1;
        query1 = "select distinct dg.order_no from dc_delivery dd, dc_grv dg where delivery_complete_datetime is null and dd.dc_delivery_id_no = dg.dc_delivery_id_no and dd.delivery_announce_datetime is null and dd.delivery_bay_code = " + cbDelivery.Text;
        OracleCommand cmd1 = new OracleCommand(query1, conn);
        OracleDataReader dr1 = cmd1.ExecuteReader();
        while (dr1.Read())
        {
            cbOderNo.Items.Add(dr1["order_no"]);

        }
        dr1.Close();
        conn.Close();

Note I'm using cbDelivery combobox in my second Select query. 注意我在第二个“选择”查询中使用了cbDelivery组合框。

Problem is: As soon as I select a value from my first combobox the second gives an exception ""ORA-00904: "BAY1": Invalid Identifier. 问题是:一旦我从第一个组合框中选择一个值,第二个组合框就会给出异常““ ORA-00904:” BAY1“:无效的标识符。

Please help me sort this out or suggest a different method. 请帮助我解决这个问题或建议其他方法。

Thanks in Advance. 提前致谢。

May be your query using some keyword of sql or oracle as column name or at some invalid place. 可能是使用sql或oracle的某个关键字作为列名或在某个无效位置的查询。 in such cases this type of errors are possible. 在这种情况下,这种类型的错误是可能的。 I am not sure about this solution. 我不确定这种解决方案。 but atleast we can try once. 但是我们至少可以尝试一次。 so that we can make it sure if its correct or not? 这样我们就可以确定它是否正确?

FIXED!! 固定!! This is how i did it: 这是我的方法:

private void populateDeliveryBayCodes()
    {
        conn.Open();
        string query;
        query = "select distinct dd.delivery_bay_code from dc_delivery dd, dc_grv dg where dd.delivery_complete_datetime is null and dd.dc_delivery_id_no = dg.dc_delivery_id_no and dd.delivery_announce_datetime is null";
        OracleCommand cmd = new OracleCommand(query, conn);
        OracleDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            cbDelivery.Items.Add(dr["delivery_bay_code"]);
        }
        dr.Close();
        conn.Close();
    }

    private void populateOrderNumbers()
    {
        conn.Open();
        string query;
        query = "select distinct dg.order_no from dc_delivery dd, dc_grv dg where dd.delivery_complete_datetime is null and dd.dc_delivery_id_no = dg.dc_delivery_id_no and dd.delivery_announce_datetime is null and dd.delivery_bay_code ='" + cbDelivery.Text + "' order by order_no";
        OracleCommand cmd = new OracleCommand(query, conn);
        OracleDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            cbOderNo.Items.Add(dr["order_no"]);
        }
        dr.Close();
        conn.Close();
    }

and

private void frmBuiltPallet_Load(object sender, EventArgs e)
    {
        populateDeliveryBayCodes();
    {

private void cbDelivery_SelectedIndexChanged(object sender, EventArgs e)
    {
        populateOrderNumbers();
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM