显示从数据库到文本框的值
本文关键字:文本 数据库 显示 | 更新日期: 2023-09-27 18:22:08
我有一个列表视图,显示数据库中的所有EmpID和EmpName。单击一行时,如何查看从数据库到文本框的值?这就是我从列表视图到文本框显示所选行的方式。
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
ListViewItem item = listView1.SelectedItems[0];
EmpIDtextBox.Text = item.SubItems[0].Text;
EmpNametextBox.Text = item.SubItems[1].Text;
}
else
{
EmpIDtextBox.Text = string.Empty;
EmpNametextBox.Text = string.Empty;
}
}
列表视图没有地址、年龄和其他字段。如何显示列表视图在文本框中不包含的地址和其他字段?
您可以将列表绑定到包含所需所有数据的数据源。。如果你不想在列表中显示一列,将该列的宽度设为0,那么它将隐藏。。然后你可以填写这样的文本框:例如
EmpAge.Text = item.subItems[3].Text ;//column's width is 0
EmpAddress.Text = item.subItems[4].Text ;//column's width is 0
用数据填充ListView
时,可以将DataRow
(或保留所有数据行信息的另一个对象)放入ListViewItem
的Tag属性中。
item.Tag = row;
然后,当用户在列表视图中选择行时,您可以从所选ListViewItem
的Tag属性中获取DataRow
,并从该数据行中提取属性值,如下所示:
var row = item.Tag as DataRow.
您也可以执行以下操作:
/*declare variable with scope global */
int id;
if (Listview.SelectedItems.Count > 0)
{
ListViewItem item;
item = ListProducts.SelectedItems[0];
id = int.parse(item.SubItems[0].Text.ToString());
}
SqlCommand cmd = "SELECT Address, Age FROM table2 WHERE id= @item";
cmd.Connection = YourDataBaseConnection;
cmd.Parameters.Clear();
cmd.Parameters.Add("@item", SqlDbType.Int).Value= id;
con.Open();
sqlDataReader rdr = new SqlDataReader();
rdr= cmd.ExecuteReader();
while(rdr.Read())
{
yourTextBox.Text = rdr[0].Text.Tostring();
//place the data to desired textBox
}
con.Dispose();
cmd.Dispose();
`