我有一个列表框metalListbox和4个文本框rtxt_num,名称,文档名,wiloc。
列表框绑定到具有OleDb的数据源,并且在
私有空metal_metalListbox_SelectedIndexChanged(object发送者,EventArgs e)
所选值的详细信息将显示在文本框中。除了从列表框中选择三个特定值外,一切都进行得很顺利。
当我选择这三个条目中的一个时,列表框会切换到第一个条目,不让我选择它们,而是继续工作。如果我再次单击这些,它将再次单击第一个条目。。
我想可能是它显示的文本框中的文件名或其他细节。由于(),但是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);
}
}发布于 2014-08-01 16:37:31
在这里,使用metalListBox.Text值的查询最有可能受到责备。
尝试metalListBox.SelectedItem,或者从e参数(它应该有一个"selectedItem“属性)中提取这个值。
发布于 2014-08-01 16:41:03
让我们在(reader.HasRows){}中尝试此操作,并将事件更改为selectedItem而不是selectedIndex Has.Rows
https://stackoverflow.com/questions/25084218
复制相似问题