【问题标题】:Display value from Database to TextBox从数据库显示值到文本框
【发布时间】:2013-07-11 20:45:46
【问题描述】:

我有一个列表视图,可以显示数据库中的所有 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;
}
}

列表视图没有地址、年龄和其他字段。如何在 textBox 中显示 Listview 不包含的地址和其他字段?

【问题讨论】:

  • 最好的解决方案是加载所有数据并将其绑定到 ListViewRow 的标签上。当您单击 listview 中的任何行时,只需获取标签并将其解析为标签类型的对象并在文本框中显示值。它将使您免于向数据库发送多个调用。

标签: c# sql-server winforms listview textbox


【解决方案1】:

当您用数据填充ListView 时,您可以将DataRow(或保留所有数据行信息的其他对象)放入ListViewItem 的Tag 属性中。

item.Tag = row;

然后当用户在列表视图中选择行时,您可以从所选ListViewItem 的 Tag 属性中获取DataRow 并从该数据行中提取属性值,如下所示:

var row = item.Tag as DataRow.

【讨论】:

    【解决方案2】:

    或者你可以这样做:

    /*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();
    

    `

    【讨论】:

      【解决方案3】:

      您可以将列表绑定到包含您需要的所有数据的数据源..如果您不想在列表中显示列,则将该列的宽度设为 0,那么它将隐藏..然后您可以像这样填充文本框:例如

      EmpAge.Text = item.subItems[3].Text ;//column's width is 0
      
      EmpAddress.Text = item.subItems[4].Text ;//column's width is 0
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-11
        • 1970-01-01
        • 2022-01-11
        • 1970-01-01
        相关资源
        最近更新 更多