我有这个代码,它将数据库中以listform格式的单元格中的项目发送到lsitbox。 但是当它在数据库中加载时,它会显示在一个长列表中,而不是每个新项目都会转到新行。
任何人都可以帮忙吗?
private void ItemCBx_SelectedIndexChanged(object sender, EventArgs e)
{
Listbox1.Items.Clear();
MAcon.Open();
OleDbDataAdapter da = new OleDbDataAdapter("Select Process from [Product Family] Where [Product Name] = @ProductName", MAcon);
da.SelectCommand.Parameters.AddWithValue("@ProductName", ItemCBx.SelectedItem.ToString());
DataTable dtbl = new DataTable();
da.Fill(dtbl);
if (dtbl.Rows.Count == 1)
{
Listbox1.Items.Add(dtbl.Rows[0][0]);
}
MAcon.Close();
Listbox1.Show();
Listbox1.Text.ToString().Split(',').ToList().ForEach(r => Listbox1.Items.Add(r.Trim()));
// Define.SelectedIndex = 1;
}
答案 0 :(得分:1)
ListBox1.Text返回所选项;因为您没有选择任何项目,所以它返回一个空字符串。
在拆分列表之前选择第一项......
ListBox1.SelectedIndex = 0;
Listbox1.Text.ToString().Split(',').ToList().ForEach(r => Listbox1.Items.Add(r.Trim()));
...或直接拆分ListBox
的第一个元素
Listbox1.Items[0].ToString().Split(',').ToList().ForEach(r => Listbox1.Items.Add(r.Trim()));
答案 1 :(得分:0)
你也可以这样写
Listbox1.Items.Clear();
MAcon.Open();
OleDbDataAdapter da = new OleDbDataAdapter("Select Process from [Product Family] Where [Product Name] = @ProductName", MAcon);
da.SelectCommand.Parameters.AddWithValue("@ProductName", ItemCBx.SelectedItem.ToString());
DataTable dtbl = new DataTable();
da.Fill(dtbl);
ListBox1.DataSource = dtbl;
ListBox1.DisplayMember = "Process ";
ListBox1.ValueMember = "Process";
MAcon.Close();
Listbox1.Show();
// Define.SelectedIndex = 1;
答案 2 :(得分:0)
创建另一个列表框,在那里发送初始项目然后从第二个列表框发送到初始列表框
Listbox1.Items.Clear();
MAcon.Open();
OleDbDataAdapter da = new OleDbDataAdapter("Select Process from [Product Family] Where [Product Name] = @ProductName", MAcon);
da.SelectCommand.Parameters.AddWithValue("@ProductName", ItemCBx.SelectedItem.ToString());
DataTable dtbl = new DataTable();
da.Fill(dtbl);
ListBox2.DataSource = dtbl;
ListBox2.DisplayMember = "Process ";
ListBox2.ValueMember = "Process";
MAcon.Close();
Listbox2.Show();
listBox2.Text.ToString().Split(',').ToList().ForEach(r => Listbox1.Items.Add(r.Trim()));
//