c#将列添加到列表框并清除列表项
问题描述:
我在C#中有一个winforms应用程序,用户必须从combobox
中选择数据,然后这些项目列在listbox
中。是 我的问题如下: 如果用户选择的结果出现好项目,但如果他选择另一项目的老结果不会被清除,所以我使用的线路:c#将列添加到列表框并清除列表项
listView1.Items.Clear();
但是,如果我用这行代码,结果不会完全显示,还有行缺失。
我的代码是:
SqlDataAdapter sda = new SqlDataAdapter(@"select [desc],[enchimento] from vidros where desempenho = @emp", con);
sda.SelectCommand.Parameters.Add("@emp", SqlDbType.NVarChar).Value = desempenho.Text;
DataTable DTT = new DataTable();
sda.Fill(DTT);
for (int i = 0; i < DTT.Rows.Count; i++)
{
listView1.Items.Clear();
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);
}
第二个问题是,我有2个字段,我想在列表框中,(降序和enchimento)来显示的,但在列表框中仅显示其中之一。
答
您可以拨打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);
}
答
PL
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();
也许你可以加入他们的行列,例如:listitem.SubItems.Add(DR [ “”desc“]。ToString()+”“+ dr [”enchimento“]。ToString()); –
我认为有选择和取消选择方法listview ..尝试与intellisense,我认为有可能很容易解决您的问题 – Joshit
@ FedericoNavarrete谢谢,解决了2项显示。现在我只需要清除旧选择 – septaug