Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подвисает форма при наполнении DataGrid, из таймера 
:(
    Опции темы
qpile
Дата 25.8.2010, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Добрый день , уважаемые всем! Мой дата грид в таймере с помощью этого метода наполняется из базы мускуль вот этим методом
Код

  public void onchangetable()
        {
            String res_date, res_date_fin;
            res_date = this.dateTimePicker1.Value.Year.ToString() + "-" + this.dateTimePicker1.Value.Month.ToString() + "-" +
                this.dateTimePicker1.Value.Day.ToString();
            res_date_fin = this.dateTimePicker2.Value.Year.ToString() + "-" + this.dateTimePicker2.Value.Month.ToString() + "-" +
                this.dateTimePicker2.Value.Day.ToString();

            data = new DataTable();
            if (this.tables.SelectedItem.ToString() == "rts")
            {
                da = new MySqlDataAdapter("SELECT * FROM " + this.tables.SelectedItem.ToString(), conn);
            }
            else
            {
                String query = "SELECT * FROM " + this.tables.SelectedItem.ToString() + " where code='" +
                    CodeTextBox.Text + "' and data ='" + res_date + "'  order by data,time";
                da = new MySqlDataAdapter(query, conn);
            }

                cb = new MySqlCommandBuilder(da);

                da.Fill(data);

                this.dataGrid.DataSource = data;

            
        }


Но проблема в том, что при этом виснет форма. Как сделать так , что бы этого не было? В отдельном потоке не получается. Поскольку сам датагрид создается в ней.

Спасибо всем большое за помощь!

PM MAIL   Вверх
gambit
Дата 25.8.2010, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 5
Всего: 40



Цитата(qpile @  25.8.2010,  11:43 Найти цитируемый пост)
в таймере

а избавится от таймера не получится?

Цитата(qpile @  25.8.2010,  11:43 Найти цитируемый пост)
В отдельном потоке не получается. Поскольку сам датагрид создается в ней.

Из отдельного потока, обратиться к контролу род потока, можно через метод Invoke()
PM MAIL ICQ Skype   Вверх
qpile
Дата 25.8.2010, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Цитата(gambit @ 25.8.2010,  10:26)
Цитата(qpile @  25.8.2010,  11:43 Найти цитируемый пост)
в таймере

а избавится от таймера не получится?

Цитата(qpile @  25.8.2010,  11:43 Найти цитируемый пост)
В отдельном потоке не получается. Поскольку сам датагрид создается в ней.

Из отдельного потока, обратиться к контролу род потока, можно через метод Invoke()

а как можно избавиться от таймера? INVOKE Тоже делал. Тоже саоме
PM MAIL   Вверх
ДобренькийПапаша
Дата 25.8.2010, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Я не стал въезжать в тему, но чтобы выполнять что-то в отдельном потоке и из него обращаться к контролу на форме надо использовать InvokeRequired!


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
gambit
Дата 25.8.2010, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 5
Всего: 40



Цитата(qpile @  25.8.2010,  13:17 Найти цитируемый пост)
а как можно избавиться от таймера?

ну я же не телепат. Вообще, все это делается на событиях.
PM MAIL ICQ Skype   Вверх
mrbrooks
Дата 25.8.2010, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 7
Всего: 306



чую я что грузится фигова туча данных, которую юзер будет просматривать (по мнению девелопера) с интересом, прокручивая скролл в течении пару лет.

Конечно грузить в потоке - это прекрасная идея, но возможно автор посмотрит и удовлетворится:
a) DataGridView.VirtualMode и все отсюда вытекающее.
б) Реализует Paging DataGridView

хинт: то что латиницей - можно выделить и гугл.
PM MAIL   Вверх
qpile
Дата 25.8.2010, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Цитата(mrbrooks @ 25.8.2010,  12:17)
чую я что грузится фигова туча данных, которую юзер будет просматривать (по мнению девелопера) с интересом, прокручивая скролл в течении пару лет.

Конечно грузить в потоке - это прекрасная идея, но возможно автор посмотрит и удовлетворится:
a) DataGridView.VirtualMode и все отсюда вытекающее.
б) Реализует Paging DataGridView

хинт: то что латиницей - можно выделить и гугл.

В точку!  smile 

Но все таки данные не все, но какой то определенный достаточный большой кусок просмотреть может. Попробую попробовать Ваши варианты. Спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.