2

ここに画像の説明を入力

データベースから ComboBox にデータを挿入したいと考えています。これは私のコードです:

OracleDataTable dt = new OracleDataTable();
OracleConnection conn = new OracleConnection();
conn.ConnectionString = "....string....";

string query = "SELECT emp_username FROM dc_emp";
OracleDataAdapter da = new OracleDataAdapter(query,conn);

da.Fill(dt);
rp.cbDelivery.DataSource = dt;
rp.cbDelivery.DisplayMember = "emp_username";

これは機能しますが、100% ではありません。コンボボックスに適切な量のフィールドを取得していますが、名前の値が CoreLab.Common に置き換えられています。

したがって、間違いなくDBテーブルへの接続を確立し、適切な量のフィールドを戻しますが、適切な値ではありません...

これが理にかなっていることを願っています。

助けてください。

4

5 に答える 5

0

このようなもの-

        rp.cbDelivery.DataSource = dt
        rp.cbDelivery.DisplayMember = "emp_username";
        rp.cbDelivery.ValueMember = "emp_username";

また、Datatable dt= new DataTable();代わりに 試してみてくださいOracleDataTable dt = new OracleDataTable();

于 2012-11-28T09:52:20.250 に答える
0

ValueMemberも割り当てます:

rp.cbDelivery.ValueMember = "emp_username";

于 2012-11-28T09:52:22.670 に答える
0

私の意見では、次の行に注目する必要があります。

rp.cbDelivery.DisplayMember = "emp_username";

この問題は、DataTable参照していた列名が列名に含まれていないことが原因である可能性があります。おそらく問題を再現する例を次に示します。

dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));

dt.Rows.Add(new object[] { 1, "Alex" });
dt.Rows.Add(new object[] { 2, "John" });
dt.Rows.Add(new object[] { 3, "Mary" });

comboBox1.DataSource = dt;
comboBox1.DisplayMember = "Name_with_typo"; //here you should use Name
于 2012-11-28T09:52:53.937 に答える
0

最初に次のように使用する必要がありますDisplayMember

OracleConnection conn = new OracleConnection("....string....");
string query = "SELECT emp_username FROM dc_emp";
OracleDataAdapter da = new OracleDataAdapter(query,conn);
OracleDataTable dt = new OracleDataTable();
da.Fill(dt);
rp.cbDelivery.DisplayMember = "emp_username";
rp.cbDelivery.DataSource = dt;
于 2012-11-28T09:57:08.710 に答える
0

すべてのフィードバックに感謝します。私はあなたの提案をすべて試しましたが、最後に例を見つけて、私のために働くように修正しました。これは以下の作業コードです。

        OracleDataReader dr;
        OracleConnection conn = new OracleConnection();
        conn.ConnectionString = "....string....";
        string 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";
        OracleCommand cmd = new OracleCommand(query, conn);
        conn.Open();
        dr = cmd.ExecuteReader();
        while(dr.Read())
        {
            if (dr[0].ToString().Length > 2)
                cbDelivery.Items.Add(dr[0].ToString());
        }
        conn.Close();
于 2012-11-28T12:54:00.513 に答える