显示从数据库到文本框的值

本文关键字:文本 数据库 显示 | 更新日期: 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();

`