在Combobox中显示列表项并关注来自DB

时间:2016-05-16 12:22:52

标签: c# visual-studio combobox ms-access-2010

我有一个id文本框和一个名称,部门组合框和一个部门,我已将它们与MS Access链接,但部门和部门组合框仅显示所选值(不是包含所有项目的列表),我需要它给我一个包含所有项目的列表,并关注该ID的当前值。

这是我到目前为止所做的:

 private void id_txt_TextChanged(object sender, EventArgs e)
    {
        try
        {
            bool hasdata = false;
            if (id_edit.Text != "")
            {
                connection.Open();
                OleDbCommand command = new OleDbCommand();
                command.Connection = connection;
                String query = " SELECT * FROM emp_personal WHERE ID = " + Int32.Parse(id_edit.Text) + "";
                command.CommandText = query;
                OleDbDataReader reader = command.ExecuteReader();
                OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection);
                while (reader.Read())
                {
                    hasdata = true;
                    name_edit.Text = reader["Name"].ToString();

                    DataSet ds = new DataSet();
                    adapter.Fill(ds);

                    department_edit.DataSource = ds.Tables[0];
                    department_edit.DisplayMember = "Department";
                    department_edit.ValueMember = "Department";


                    division_edit.DataSource = ds.Tables[0];
                    division_edit.DisplayMember = "Division";
                    division_edit.ValueMember = "Division";
                }
                connection.Close();
            }

            if (!hasdata)
            {
                name_edit.Clear();
                department_edit.SelectedIndex = -1;
                division_edit.SelectedIndex = -1;

            }
        }

        catch (Exception ex)
        {
            MessageBox.Show("Error " + ex);
            connection.Close();
        }
    }

感谢。

1 个答案:

答案 0 :(得分:0)

解决方案:

    while (reader.Read())
                {
                    hasdata = true;
                    name_edit.Text = reader["Name"].ToString();
                    department_edit.Text = String.Empty;
                    department_edit.SelectedText = reader["Department"].ToString();
                    division_edit.Text = String.Empty;
                    division_edit.SelectedText = reader["Division"].ToString();
                }