在组合框中显示列表项并关注数据库中的预存值
Display List items in Combobox and Focus on presaved value from DB
我有一个 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();
}
}
谢谢。
解决方案:
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();
}
我有一个 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();
}
}
谢谢。
解决方案:
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();
}