gpt4 book ai didi

c# - 如何循环checklistbox中的所有数据?

转载 作者:行者123 更新时间:2023-12-02 12:00:08 25 4
gpt4 key购买 nike

如何以“正确”的方式循环检查列表框中的所有数据并将其一一打印在控制台上或弹出在消息框中?

我用这种方式填充了我的 clbPackages

// clbPackages is a checkedlistbox
SqlCommand scPackages = new SqlCommand("SELECT XXX FROM XXX", sqlConnection);
SqlDataReader readerPackages;
readerPackages = scPackages.ExecuteReader();
DataTable dtPackages = new DataTable();
dtPackages.Columns.Add("PACKAGE_GROUP_ID", typeof(string));
dtPackages.Columns.Add("PACKAGE_GROUP_NAME", typeof(string));
dtPackages.Load(readerPackages);

this.clbPackages.DataSource = dtPackages;
this.clbPackages.ValueMember = "PACKAGE_GROUP_ID";
this.clbPackages.DisplayMember = "PACKAGE_GROUP_NAME";

现在我必须循环该选中列表框,因为我正在尝试 checkin 一些内容,我最好的尝试是下面的代码

foreach (var item in clbPackages.Items)
{
MessageBox.Show(item.ToString());
}

它只返回 xxx.xxx.DataRowView,如果我尝试再次循环该项目,它将显示错误“foreach 语句无法对“object”类型的变量进行操作,因为“object””


由比约恩回答

其他处理方式

foreach (object item in clbPackages.Items)
{
DataRowView castedItem = item as DataRowView;
string groupId= castedItem["PACKAGE_GROUP_ID"].ToString();
MessageBox.Show(groupId);
}

最佳答案

听起来 Items 集合中的对象属于 DataRowView 类型。因此,如果您将每个项目转换为 DataRowView 并从该对象获取值,您应该没问题:

foreach (DataRowView item in clbPackages.Items)
{
MessageBox.Show(item["PACKAGE_GROUP_NAME"].ToString());
}

关于c# - 如何循环checklistbox中的所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30299235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com