我正在更新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();
}
答案 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();
}