【发布时间】:2014-08-01 16:00:43
【问题描述】:
我有一个列表框 metalListbox 和 4 个文本框 rtxt_num,name,docname,wiloc。
列表框使用 OleDb 绑定到数据源,并且在
private void metal_metalListbox_SelectedIndexChanged(对象发送者, 事件参数 e)
所选值的详细信息将显示在文本框中。一切顺利,除了从列表框中选择三个特定值。
- 12 英尺 Accurpress 折弯机
- ETS 2000(14 英尺精度)
- 首件检验(金属)
当我选择这三个中的一个时,列表框会捕捉到第一个条目并且不会让我选择它们,但会继续工作。如果我再次单击它们,它将再次捕捉到第一个条目。
我认为可能是它显示的文本框中的文件名或其他详细信息。由于有 (),但 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是否是问题所在(不应该!)以及查询的工作原理..