C# 处理 DataSet 和 ListBox 之间的数据

C# handling data between a DataSet and a ListBox

我在 Internet 上看过,虽然我遇到了一些相似的内容,但我似乎找不到与我要实现的目标直接相关的内容。

简而言之,我想实现以下目标:

1) 从数据库中提取数据到数据集中;
2) 填充使用数据集中信息列之一的数据;
3) 使用OnIndexChanged 事件触发窗体上的组件将数据集的相应值显示在其他列中,如ListBox 中显示的内容。

我运行查询其中returns结果如下:

将其加载到 C# 中的数据集中后,我想用 'ADDRESS' 列中的值填充列表框。

在填充后选择该列表框中的记录时,我希望表单上的标签标题显示与该 ADDRESS 记录关联的相应 ADDRESS_ID 值。

我希望足够详细地概述了我想要实现的目标;到目前为止,我发现的内容非常适合填充列表框,但是在尝试 reverse-engineer 另一个基于列表框的选定索引的值时,我在这一点之后被卡住了。

使用包含所有地址值的列表(我假设从来没有任何重复项?)

在表单加载或任何构建列表并填充列表框时。

List<string> addresses = new List<string>();

foreach(datarow r in MyDataset)
    addresses.add(r["Address"].ToString());

listbox1.datasource = addresses;

然后在列表框的 onchange 事件中

foreach(datarow r in MyDataset)
{
    if(r["address"].ToString() == listbox1.selectedvalue)
        label1.text = r["Address_ID"].ToString();
}
listbox1.DataSource=AddressTable; {Datatable}
listbox1.DisplayMember="Address";
listbox1.ValueMember="Address_ID";

然后onchange事件

label1.Text = ((DataRowView) listBox1.SelectedItem)["Address_ID"].ToString();