c#将列添加到列表框并清除列表项

时间:2017-02-10 08:40:23

标签: c# sql combobox listbox

我在C#中有一个winforms应用程序,用户必须从override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { for touch in touches { let location = touch.location(in: self) let node : SKNode = self.atPoint(location) if node.name == "button1" { print("Tapped") } } } 中选择数据,然后在combobox中列出这些项目。 我遇到的问题如下: 如果用户选择一个项目,结果看起来没问题,但是如果他选择了另一个项目,那么旧结果将不会被清除,所以我使用该行:

listbox

但是,如果我使用这行代码,结果将不会完全显示,则会缺少行。

我的代码是:

listView1.Items.Clear();

第二个问题是,我希望在列表框中显示2个字段(desc和enchimento),但列表框只显示其中一个字段。

2 个答案:

答案 0 :(得分:1)

您可以在循环中调用listView1.Items.Clear()

因此,在循环的每次迭代中,您都会删除所有项并添加一个新项。因此,只有最后一个保留在列表视图中。

在循环之前移动行:

listView1.Items.Clear();
for (int i = 0; i < DTT.Rows.Count; i++)
{
    DataRow dr = DTT.Rows[i];
    ListViewItem listitem = new ListViewItem(dr["desc"].ToString()); 
    listitem.SubItems.Add(dr["desc"].ToString());
    listitem.SubItems.Add(dr["enchimento"].ToString());
    listView1.Items.Add(listitem);
}

答案 1 :(得分:0)

PL

&#13;
&#13;
Please use like below ExP:

   string InputValue="12";

        List<string> listView1 = new List<string>();
        using (SqlConnection conn = new SqlConnection())
        {
            List<string> terms = InputValue.Split(',').ToList();
            terms = terms.Select(s => s.Trim()).ToList();

            //Extract the term to be searched from the list
            string searchTerm = terms.LastOrDefault().ToString().Trim();

            //Return if Search Term is empty
            if (string.IsNullOrEmpty(searchTerm))
            {
                return new string[0];
            }

            //Populate the terms that need to be filtered out
            List<string> excludeTerms = new List<string>();
            if (terms.Count > 1)
            {
                terms.RemoveAt(terms.Count - 1);
                excludeTerms = terms;
            }

           conn.ConnectionString = ConfigurationManager
                    .ConnectionStrings["CON"].ConnectionString;
            using (SqlCommand cmd = new SqlCommand())
            {
                string query = "select [desc],[enchimento] from vidros where " +
                " desempenho = @emp";

                cmd.CommandText = query;
                cmd.Parameters.AddWithValue("@emp", searchTerm);
                cmd.Connection = conn;
                conn.Open();
                using (SqlDataReader sdr = cmd.ExecuteReader())
                {
                    while (sdr.Read())
                    {
                        listView1.Add(string.Format("{0}-{1}", sdr["desc"], sdr["enchimento"]));
                    }
                }
                conn.Close();
            }
            return listView1.ToArray();
&#13;
&#13;
&#13;