【问题标题】:C# handling data between a DataSet and a ListBoxC# 处理 DataSet 和 ListBox 之间的数据
【发布时间】:2015-09-16 00:23:00
【问题描述】:

我在 Internet 上进行了查看,虽然我遇到了一些类似的内容,但我似乎无法找到与我想要实现的目标直接相关的内容。

简单来说,我想实现以下目标:

1) 将数据库中的数据提取到 DataSet 中;
2) 使用数据集中的一列信息填充数据;
3) 使用 OnIndexChanged 事件触发表单上的组件,在其他列中显示数据集的对应值,以了解 ListBox 中显示的内容。

我正在运行一个返回以下结果的查询:

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

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

我希望足够详细地概述我想要实现的目标;到目前为止,我发现的内容非常适合填充列表框,但是在尝试基于 ListBox 的选定索引对另一个值进行逆向工程时,我被卡住了。

【问题讨论】:

标签: c# listbox dataset


【解决方案1】:
listbox1.DataSource=AddressTable; {Datatable}
listbox1.DisplayMember="Address";
listbox1.ValueMember="Address_ID";

然后 onchange 事件

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

【讨论】:

  • 非常感谢;像魅力一样工作(一旦填充了 DataTable)
【解决方案2】:

使用包含所有地址值的列表(我假设永远不会有任何重复项?)

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

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();
}

【讨论】:

    猜你喜欢
    • 2011-06-15
    • 2022-10-26
    • 2021-09-05
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    相关资源
    最近更新 更多