![]() |
|
Модераторы: gambit |
![]()
|
|
| RedButterfly |
|
||||
|
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
добрый вечер
у меня есть в классе метод, который загружает данные из таблицы в ДатаСет: (она работает
а в другом методе мне нужно из ДатаСета получить строку: предварительно делаю LoadDB();
внутри этого метода датасет я вижу, но, так как ничего из него не получается вытащить, то думаю, что он пустой... или ещё что-нибудь с ним произошло как в "чужих" методах получают данные из ДатаСета? в форуме не нашла ответа на свой вопрос... |
||||
|
|||||
| RedButterfly |
|
|||
|
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
Это сообщение отредактировал(а) RedButterfly - 23.9.2008, 13:49 |
|||
|
||||
| RedButterfly |
|
|||
|
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
ошибку нашла
вот такой перебор есть:
такой перебор не есть хорошо , говорят... а есть другие методы , с помощью которых можно в таблице базы данных/ таблице датасета выполнить поиск определенного значения/строки более эффективным и красивым способом? если таблица маленькая - такой перебор пойдет конечно...а если в неё положить миллион записей?.... Это сообщение отредактировал(а) RedButterfly - 24.9.2008, 08:02 |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Красивее использовать либо DataTable.Rows.Find (ищет только по Primary Key), либо DataTable.DefaultView.Find. Подробнее - здесь: http://www.akadia.com/services/dotnet_find_methods.html Оба вышеописанных способа также перебирают строки и не являются более эффективными. Для повышения производительности стоит считывать только те данные, которые нужны (указывая условия отбора в SQL-запросе). |
|||
|
||||
| RedButterfly |
|
||||||
|
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
семь пятниц на неделе :(
счас требуют, чтобы поиск производился на стороне сервера плохо когда ТЗ меняется так часто... и ваще хотят, чтобы при запуске программы соединение открылось и потом оно закрылось только при закрытии программы..типа чтобы 150 раз не открывать и не закрывать....но это же небезопасно? и не нравится мне идея с надолго_открытым соединением :( нашла более красивый метод перебора чтоли: ссылка но у меня вот в этом коде
выводится "System.Data.DataRow" ))) разбираюсь.... Добавлено через 22 секунды спасибо за ссылку Добавлено через 1 минуту и 18 секунд в мсдн есть такой пример
Добавлено через 6 минут и 36 секунд вот так заработало
|
||||||
|
|||||||
| RedButterfly |
|
|||
|
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
хорошо, что хотя бы Idsa написал, а то сижу и общаюсь сама с собой чтоли....
|
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
Немного засоришь сеть. + тебе придется перед каждым запросом к базе проверять соединение, если разрыв, то переподключится. У меня знакомые писали программу, которая постоянно держала соединение открытым, а все программы слали запросы через нее. Но там была причина, т.к. Была купленна ограниченая лицензия на Oracle, с поддержкой максимум 10 соединений, а пользователей было несколько сотен. -------------------- ![]() |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Интересный workaround Все зависит от специфики приложения. Но в общем случае лучше не держать открытое соединение, а открывать/закрывать (при этом благодаря Connection Pool физическое соединение, как правило, будет создаваться только один раз). |
|||
|
||||
| MasterOfCode |
|
|||
|
elwin ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 24.4.2008 Где: World.Russia.Tyum en Репутация: 4 Всего: 27 |
Т.е. получается что большое время на конект к базе будет тратиться только один раз, а на остальные конекты времени уходить меньше в связи с тем, что физически коннект не создается? Если да, то тогда смысла держать коннект постоянно открытым - нет. Добавлено через 1 минуту Дешево и сердито -------------------- ![]() |
|||
|
||||
| RedButterfly |
|
|||
|
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
Почитала про Connection Pool интересно а то я думала, что каждый раз создавать соединение придется....и прога будет тормозииииить.... можно всем вопрос немного не в тему? руководитель - программист делфи и я ему потихоньку объясняю что пишу как ему объяснить, что датасет - это не окно в базу данных? (он говорит, что датасет - это типа рекордсета в делфи, наверное) или я ошибаюсь на счет датасета? |
|||
|
||||
| RedButterfly |
|
||||||
|
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
про теорию:
у меня в программе Connection лежит не в классе c формой и DataSet тоже не в классе с формой при запуске программы нужно загрузить в ListBox все строки таблицы датасета то есть при запуске программы делается так:
вот эта строка обязательна: ENApp app = new ENApp(); и уже в Work
кажись вот так писать в методе
неправильно но без этого не могу вызвать методы этого класса и вообще у меня столько сомнений по поводу того, что какой метод/объектик где должен лежать...тот же самый датасет...он там (в классе без формы) лежит лишь по требованию высшего...но мне кажется, что "видимые" объекты должны лежать в форме...датасет причислила к видимым потому, что он в TollBoxe посоветуйте пожалуйста что-нибудь |
||||||
|
|||||||
| RedButterfly |
|
|||
|
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
после написания этой функции программа стала медленней закрываться. Нажимаю на крестик а она ещё секунду думает закрываться или нет... :(
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |