2012-04-28 161 views
1

与标题相同并使用C#。 任何人都知道如何做到这一点?我有一堆数据读入列表框,但数据不刷新,除非我重新启动窗体。任何人都知道如何刷新按钮点击事件?按钮点击刷新SQLDataReader

{ 

       SqlConnection conn = new SqlConnection(); 
       conn.ConnectionString = (@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\John\Desktop\DB\DB\DB\setup.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); 
       conn.Open(); 

       SqlCommand cmd = new SqlCommand 
       ("SELECT PEOPLE " + "FROM Workers", conn); 

       try 
       { 
        SqlDataReader sdr = cmd.ExecuteReader(); 

        while (sdr.Read()) 
        { 
         listBox1.Items.Add(sdr["people"].ToString()); 
        } 

        sdr.Close(); 
       } 

       catch (SqlException ex) 
       { 
        MessageBox.Show(ex.Message); 
       } 

       finally 
       { 
        conn.Close(); 
       } 

      } 

这是在Windows窗体中加载。所以我想在我的表单上添加一个按钮,刷新列表框项目列表

+0

你把你的代码放在哪里?请提交部分代码! – MUG4N 2012-04-28 22:06:48

+0

好吧对不起,我会编辑它 – user1353517 2012-04-28 22:10:27

+0

编辑代码:) – user1353517 2012-04-28 22:15:21

回答

2

中添加方法

private void ShowPeople() 
{ 
    // Put your code; 
} 

,然后用同样的在你点击链接

private void Button_Click(object sender,EventArgs e) 
{ 
    ShowPeople(); 
} 
+0

非常感谢!作品一种款待 – user1353517 2012-04-28 22:36:59

+0

你应该至少有更好的方法(f.e。'private IList getWorkers()'或'private void addWorkers()') – 2012-04-28 22:38:22

0

要重新加载数据到你的sqldatareader(至少我猜你的意思是使用单词“刷新”的意思是通过按下按钮来设置)必须再次使用您已使用的相同代码访问数据库。但重要的一点是,你正在使用一个糟糕的设计。因此,我指出了一篇文章(30分钟阅读),它帮助我改进了我的代码,因此摆脱了代码重复。

请阅读:http://imar.spaanjaars.com/416/building-layered-web-applications-with-microsoft-aspnet-20-part-1

您已经阅读这篇文章,我都答应你之后,你将有一个更好的了解你怎么也来访问数据库中的数据应用程序

+0

为什么“SELECT people”+“FROM Workers”打开SQL注入?这个sql查询中甚至没有一个参数。这与'SELECT PEOPLE FROM Workers'一样(OP应该用来避免误解)。 – 2012-04-28 22:26:49

+0

你是对的我会纠正这个 – MUG4N 2012-04-28 22:30:10

+0

感谢您的提示^^。 @TimSchmelter如何调用我刚从窗体加载创建的方法,然后点击按钮? – user1353517 2012-04-28 22:30:38