【问题标题】:Listbox with data source REFUSES to select certain values c#带有数据源的列表框拒绝选择某些值c#
【发布时间】:2014-08-01 16:00:43
【问题描述】:

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

列表框使用 OleDb 绑定到数据源,并且在

private void metal_metalListbox_SelectedIndexChanged(对象发送者, 事件参数 e)

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

  1. 12 英尺 Accurpress 折弯机
  2. ETS 2000(14 英尺精度)
  3. 首件检验(金属)

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

我认为可能是它显示的文本框中的文件名或其他详细信息。由于有 (),但 12 ft accurpress 没有 ()。也许是因为数字,但我还有其他带有数字的条目。

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

代码如下:

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.Text 是否是问题所在(不应该!)以及查询的工作原理..

标签: c# listbox


【解决方案1】:

您使用 metalListBox.Text 值的查询最有可能归咎于此。

尝试 metalListBox.SelectedItem,或从 e 参数中提取该值(它应该具有“selectedItem”属性)。

【讨论】:

  • 我是否只是将文本从 SelectedIndexChanged 更改为 SelectedItemChanged?然后让它更新整个表单。
【解决方案2】:

让我们试试这个 而(读者。HasRows){} 并将事件更改为 selectedItem not selectedIndex Has.Rows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-17
    • 2012-11-25
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多