在文本框中显示详细信息
本文关键字:显示 详细信息 文本 | 更新日期: 2023-09-27 18:01:45
我有一个列表框。每当我从数据库中搜索一个人时,结果将显示在一个列表框中。然后我想要的是,每当我从列表框中单击人名时,人名的详细信息将显示在文本框中。我有我的代码,但问题是,只有我第一次点击的人的详细信息显示在文本框中。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
connection.Open();
OleDbCommand select = new OleDbCommand();
select.Connection = connection;
select.CommandText = "Select * From Accounts";
OleDbDataReader reader = select.ExecuteReader();
while (reader.Read())
{
if (reader[0].ToString() == listBox1.Tag.ToString())
{
fnametb.Text = reader[1].ToString();
lnametb.Text = reader[2].ToString();
agetb.Text = reader[3].ToString();
addresstb.Text = reader[4].ToString();
coursetb.Text = reader[5].ToString();
}
}
connection.Close();
}
如果您想使用您的代码,您需要刷新listBox1.Tag
并在Tag
Selected列表框中输入项键。或者你需要使用reader[0].ToString() ==listBox1.SelectedValue
改为listBox1.selectedItem.ToString()
您检查的是ListBox.Tag
而不是ListBox.SelectedItem
。
Tag属性可用于存储您想要与项关联的任何对象。虽然可以存储任何项,但Tag属性通常用于存储有关该项的字符串信息,例如唯一标识符或该项数据在数据库中的索引位置。
您可以简单地检查SelectedItem
,因为无论如何您都在listBox1_SelectedIndexChanged
事件中。
代替
if (reader[0].ToString() == listBox1.Tag.ToString())
试
if (reader[0].ToString() == listBox1.SelectedItem.ToString())
检查
if (reader[0].ToString() == listBox1.Tag.ToString())
it will not work....
您需要获取列表框的选定索引
你的Select Query必须有一些参数,比如WHERE子句,这样程序就会知道它将加载数据库中的哪些特定数据。
告诉我你的列表框是怎么显示的
这只是另一个选项