2

データベースからすべての 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;
}
}

リストビューには、住所、年齢、その他のフィールドがありません。リストビューにテキストボックスに含まれていないアドレスやその他のフィールドを表示するにはどうすればよいですか?

4

3 に答える 3

1

データを入力すると、 (またはすべてのデータ行情報を保持する別のオブジェクト) を の Tag プロパティにListView入れることができます。DataRowListViewItem

item.Tag = row;

次に、ユーザーがリスト ビューで行を選択すると、次のようDataRowに、選択したタグ プロパティから取得しListViewItem、このデータ行からプロパティ値を抽出できます。

var row = item.Tag as DataRow.
于 2013-07-13T11:20:55.040 に答える
1

必要なすべてのデータを含むデータソースにリストをバインドできます..リストに列を表示したくない場合は、その列の幅を0にすると非表示になります..次に、テキストボックスを埋めることができますこのように:例えば

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

EmpAddress.Text = item.subItems[4].Text ;//column's width is 0
于 2013-07-13T11:34:55.797 に答える
0

または、次のこともできます。

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

`

于 2013-07-14T16:14:28.923 に答える