【问题标题】:Using combobox(using databound items) to populate listbox使用组合框(使用数据绑定项)填充列表框
【发布时间】:2018-05-17 15:33:02
【问题描述】:

如何使用选择查询(源自组合框、数据绑定项)填充列表框

如果在组合框中选择了“多冰淇淋”,​​那么我希望系统选择该行并向我显示列表框中“进程”列中的内容

目前,软件正在返回该列下的所有行

MAcon.Open();
 OleDbDataAdapter da = new OleDbDataAdapter("Select * from [Product Family] Where Process = @Process", MAcon);
 da.SelectCommand.Parameters.AddWithValue("@Process", ItemCBx.Text);
 DataTable dtbl = new DataTable();
 da.Fill(dtbl);
 if (dtbl.Rows.Count == 1)
 {
     Listbox1.Text.ToString().Split(',').ToList().ForEach(c => Listbox1.Items.Add(c.Trim()));
     Define.SelectedIndex = 1;
 }

MAcon.Close();

【问题讨论】:

  • 到底是什么问题?
  • 如何在列表框中的单元格中显示项目 - 使用使用数据绑定项目的组合框
  • 您想用查询返回的任何内容填充组合框?
  • 我想用查询返回的任何内容填充列表框
  • 这段代码在哪里使用?什么活动?避免使用组合框的“文本”属性。您需要 SelectedItem 或 SelectedValue 取决于它的设置方式。

标签: c#


【解决方案1】:

当用户在组合框中选择某些内容时,您需要添加一个事件处理程序。

然后像comboBox1.SelectedItem.ToString()一样获取selectedItem并将其传递给查询。

da.SelectCommand.Parameters.AddWithValue("@Process",comboBox1.SelectedItem.ToString()); 

然后

if (dtbl.Rows.Count == 1)
 {
     // Selects the value located in teh first row and first columns
     // if that is what your query is returning
     listBox1.Items.Add(dtbl.Rows[0][0]); 
 }

问题:我不知道您的查询返回什么看到* 意味着它将返回多个列,并且列表框中每行只能有一个元素,我建议使用 dataGridView 控件和dataGridView1.DataSource = dt; 和它将显示所有返回的列。

【讨论】:

  • 谢谢,我明白了。但是现在列表框只是空的
猜你喜欢
  • 2017-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 2019-07-28
  • 1970-01-01
相关资源
最近更新 更多