带有数据源的列表框拒绝选择某些值

本文关键字:选择 拒绝 数据源 列表 | 更新日期: 2023-09-27 18:16:04

我有一个列表框metalListbox和4个文本框rtxt_num,name,docname,wiloc.

列表框绑定到一个OleDb数据源,并在

private void metal_metalListbox_SelectedIndexChanged(对象发送者,EventArgs e)

所选值的

细节将显示在文本框中。一切都很顺利,除了从列表框中选择了三个特定的值。

  1. 12英尺精密压机制动器
  2. ETS 2000 (14 Ft Accurpress)
  3. 首件检验(金属)

当我选择这三个中的一个时,列表框会锁定到第一个条目,不让我选择它们,但会继续工作。如果我再次点击这些,它会再次捕捉到第一个条目

我认为它可能是文件名或文本框中显示的其他详细信息。由于(),但12英尺的精度没有()。可能是数字的原因,但我有其他带有数字的条目。

没有错误或弹出任何东西,所以它几乎可以工作:(

代码如下:

private void metal_metalListbox_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {         
        OleDbCommand command = new OleDbCommand();
        command.Connection = connection;
        string query = "select * from Metal where Name = '" + metalListbox.Text + "'";
        command.CommandText = query;
        OleDbDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            metal_rtxt_num.Text = reader["Number"].ToString();
            metal_rtxt_name.Text = reader["Name"].ToString();
            metal_rtxt_docname.Text = reader["docName"].ToString();
            metal_rtxt_wiloc.Text = reader["wiLoc"].ToString();
        }             
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error" + ex);
    }
}

带有数据源的列表框拒绝选择某些值

使用metalListBox的值进行查询。文本最有可能是罪魁祸首。

metalListBox试试。SelectedItem,或者从e参数(该参数应该有一个" SelectedItem "属性)中提取该值

让我们试一下而(reader.HasRows) {}并将事件更改为selectedItem而不是selectedIndex有。行