我有一个列表框Listbox1
,其中显示了ZoneID的列表
我想为每个ZoneID设置一个变量并执行一个存储过程。我已经通过显示每个ZoneID的消息框来进行测试,但是我在消息框中只能看到的是“ ZoneID”
private void Btn_AddModel_Click(object sender, EventArgs e) {
using(SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MfgDataCollector"].ToString())) {
List <Zone> Zonelist = conn.Query<Zone>("GetZone", commandType: CommandType.StoredProcedure).ToList<Zone>();
listBox1.DataSource = Zonelist;
listBox1.ValueMember = "ZoneID";
}
DisplayMessageBoxForEach();
}
private void DisplayMessageBoxForEach() {
foreach(object ValueMember in listBox1.Items) {
MessageBox.Show(listBox1.ValueMember.ToString());
}
}
我猜我缺少一些简单的语法,但这对我来说却是新的。我也可以不使用列表框而使用DapperList,但同样,这对我来说是新的。
谢谢大家!
答案 0 :(得分:0)
ValueMember
只是一个属性,它定义了数据源中正在使用的属性。
您的循环应如下所示:
foreach(Zone zone in (List<Zone>)listBox1.DataSource) {
MessageBox.Show(zone.ToString());
}
将ToString()
替换为要从Zone类显示的任何属性。
答案 1 :(得分:0)
在foreach循环中进行更改:
Zone objZone = (Zone) ValueMember:
MessageBox.Show(objZone.ZoneID);
答案 2 :(得分:0)
我最终放弃了dapper,将应用程序中的SQL命令写到一个列表中,发现完成这项工作要容易得多。现在工作。谢谢 !
grabbable