更新列表视图项

时间:2014-01-17 09:22:02

标签: c# sql-server-2008

我正在更新SQL Server数据库中的一些数据,然后将数据显示到列表框中。它正在更新数据,但显示重复的条目(旧的和新的),除非我重新启动Windows窗体。任何人都知道如何在按钮点击事件上刷新它? 既不刷新也不更新功能

private void button2_Click(object sender, EventArgs e)
{
    SqlDataReader dr;
    try
    {
        SqlCommand cmd = new SqlCommand("select prod, eng from comp", cn);
        cn.Open();
        dr = cmd.ExecuteReader();

    while (dr.Read())
    {

        listBox1.Items.Add((String)dr["prod"] + "\t\t" + (string)dr["eng"]);

    }

   cn.Close();
   listBox1.Refresh();

}

1 个答案:

答案 0 :(得分:0)

如果要重新绘制列表框,请尝试以下操作:

listBox1.Invalidate();

这将重绘您的控件。

尝试:

listBox1.Items.Clear();

在编写数据库读取项目之前,如果您只希望新项目显示在列表框中,请执行以下操作:

private void button2_Click(object sender, EventArgs e)
{
    SqlDataReader dr;
    try
    {
        SqlCommand cmd = new SqlCommand("select prod, eng from comp", cn);
        cn.Open();
        dr = cmd.ExecuteReader();

    listBox1.Items.Clear();

    while (dr.Read())
    {

        listBox1.Items.Add((String)dr["prod"] + "\t\t" + (string)dr["eng"]);

    }

   cn.Close();
   listBox1.Invalidate();

}