2012-04-28 3 views
1

То же, что и заголовок и использование C#. Кто-нибудь знает, как это сделать? У меня есть куча данных, которые читаются в списке, но данные не обновляются, если я не перезапускаю форму Windows. кто-нибудь знает, как обновить его при нажатии кнопки?Обновить 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(); 
       } 

      } 

Это в форме окна Загрузка. Поэтому я хочу добавить кнопку в свою форму, которая обновляет список элементов списка.

+0

где вы разместили свой код? Прочтите часть своего кода! – MUG4N

+0

все извините, я отредактирую его – user1353517

+0

, отредактированный с кодом :) – user1353517

ответ

2

Добавить метод

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

, а затем использовать то же самое в кнопке мыши

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

Большое спасибо! works a treat – user1353517

+0

Вы должны по крайней мере назвать метод лучше (f.e. 'private IList getWorkers()' или 'private void addWorkers()') –

0

Чтобы перезагрузить данные по вашему sqldatareader (по крайней мере, я думаю, вы имеете в виду, что задано с помощью слова «обновить»), нажав кнопку, вы просто необходимо снова получить доступ к базе данных с тем же кодом, который вы уже используете. Но здесь важно, что вы используете плохой дизайн. Поэтому я указываю статью (30 минут на чтение), которая помогла мне улучшить код и, следовательно, избавилась от дублирования кода.

Пожалуйста, прочитайте: http://imar.spaanjaars.com/416/building-layered-web-applications-with-microsoft-aspnet-20-part-1

После прочтения этой статьи я обещаю вам, что вы будете иметь лучшее понимание того, как вы должны получить доступ к данным в базе данных в приложении

+0

Почему «SELECT PEOPLE» + «FROM Workers» открыт для SQL-Injection? В этом sql-запросе нет даже одного параметра. Это то же самое, что «SELECT PEOPLE FROM Workers» (что должен использовать OP, чтобы избежать недоразумений). –

+0

Вы правы Я исправлю это – MUG4N

+0

Спасибо за советы ^^. @TimSchmelter Как я могу вызвать метод, который я только что создал из загрузки формы, и нажмите кнопку? – user1353517

Смежные вопросы