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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGridView по назначению 
V
    Опции темы
krewin
Дата 20.2.2011, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



мне надо добавить в  DataGridView1 1568 строк которые имеют пять столбцов метод  DataGridView1.Rows.Add() очень медленный !!!
Данные я беру из файла и добавляю с помощи for цикл от 0 до 2000   DataGridView1.Rows.Add() затем  DataGridView1.Item(номер столбца, строка).Value = значение

есть другой вариант побыстрее ?
вариант с методом My.Application.DoEvents() чтобы дать управление контролом выдает глюк на 56 строке
PM MAIL   Вверх
diadiavova
Дата 20.2.2011, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Ну как минимум, при добавлении строки, все значения можно добавить в один присест
Код

 DataGridView1.Rows.Add(value1, value2, value3, value4, value5)

А вообще при работе с гридом лучше использовать привязку данных, то есть считанные значения можно загонять в DataTable и передавать таблицу свойству DataSource грида. Хотя лучше всего данные хранить в базе данных, тогда и работать с инструментами, предназначенными для этих целей будет куда проще.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
krewin
Дата 20.2.2011, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Тут непонятно вот пример

Код

 Dim da As DataTable = New DataTable("ParentTable")
        Dim column As DataColumn


         
        column = New DataColumn()
        column.DataType = System.Type.GetType("System.String")
        column.ColumnName = "id"
        column.ReadOnly = True
        column.Unique = True

        da.Columns.Add(column)


тут цикл заталкивает данные пока только id вот   
Код

da.Rows.Add(id)


Код

 DataGridView1.DataSource = da


И в итоге ничего невышло пустая таблица

Это сообщение отредактировал(а) diadiavova - 20.2.2011, 20:20
PM MAIL   Вверх
diadiavova
Дата 20.2.2011, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Цитата(krewin @  20.2.2011,  19:56 Найти цитируемый пост)
тут цикл заталкивает данные пока только id вот   da.Rows.Add(id)

А что ты хотел этим сделать? smile Я ведь показал как надо. smile

Добавлено через 1 минуту и 39 секунд
И будь добр, используй теги code.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
krewin
Дата 21.2.2011, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Сам DataGridView1.Rows.Add в цыкле очень медленный, вот наверно в datatabel об будет быстрее, сначала заталкать данные в datatable затем на DataGridView1. Сразу без цыкла
PM MAIL   Вверх
diadiavova
Дата 21.2.2011, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



krewin, вообще, обычно в таких случаях лучше использовать инструменты студии: во-первых сделаешь все быстрее, а во-вторых, там много удобных костылей будет. Добавь в проект DataSet (через диалог добавления новых элементов), в дизайнере перетащи на него таблицу, отредактируй ее и привязку выполни в дизайнере форм. И будет тебе счастье. smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
krewin
Дата 27.2.2011, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я нашел другой способ, создав глобальный массив, который заталкивает данные rows через таймер в интревале 1м/сек. Это помогает получить управление во время работы. Можно перемещаться по таблице и даже изменять значения.
PM MAIL   Вверх
diadiavova
Дата 27.2.2011, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Цитата(krewin @  27.2.2011,  10:06 Найти цитируемый пост)
Я нашел другой способ, создав глобальный массив, который заталкивает данные rows через таймер в интревале 1м/сек.

 smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Freyzer
Дата 27.2.2011, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


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

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



diadiavova

а чего тебе не нравитСО? Может человек нашел выход. 

Правда вот, думаю. А сколько оперативки будет жрать такое приложение, которое по таймеру перебирает массив данных?


--------------------
Advocatus Dei smile. Advocatus Diaboli smile. Ajo!   
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

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

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


 




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


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

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