| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > вызвать DataSet из другой функции |
| Автор: RedButterfly 23.9.2008, 13:21 | ||||
| добрый вечер у меня есть в классе метод, который загружает данные из таблицы в ДатаСет: (она работает
а в другом методе мне нужно из ДатаСета получить строку: предварительно делаю LoadDB();
внутри этого метода датасет я вижу, но, так как ничего из него не получается вытащить, то думаю, что он пустой... или ещё что-нибудь с ним произошло как в "чужих" методах получают данные из ДатаСета? в форуме не нашла ответа на свой вопрос... |
| Автор: RedButterfly 23.9.2008, 13:47 |
| Автор: RedButterfly 24.9.2008, 08:01 | ||
| ошибку нашла вот такой перебор есть:
такой перебор не есть хорошо , говорят... а есть другие методы , с помощью которых можно в таблице базы данных/ таблице датасета выполнить поиск определенного значения/строки более эффективным и красивым способом? если таблица маленькая - такой перебор пойдет конечно...а если в неё положить миллион записей?.... |
| Автор: RedButterfly 24.9.2008, 09:33 | ||||||
| семь пятниц на неделе :( счас требуют, чтобы поиск производился на стороне сервера плохо когда ТЗ меняется так часто... и ваще хотят, чтобы при запуске программы соединение открылось и потом оно закрылось только при закрытии программы..типа чтобы 150 раз не открывать и не закрывать....но это же небезопасно? и не нравится мне идея с надолго_открытым соединением :( нашла более красивый метод перебора чтоли: http://forum.vingrad.ru/index.php?showtopic=119929&view=findpost&p=912578 но у меня вот в этом коде
выводится "System.Data.DataRow" ))) разбираюсь.... Добавлено через 22 секунды спасибо за ссылку Добавлено через 1 минуту и 18 секунд в мсдн есть такой пример
Добавлено через 6 минут и 36 секунд вот так заработало
|
| Автор: RedButterfly 24.9.2008, 12:29 |
| хорошо, что хотя бы Idsa написал, а то сижу и общаюсь сама с собой чтоли.... |
| Автор: MasterOfCode 24.9.2008, 13:25 | ||
Немного засоришь сеть. + тебе придется перед каждым запросом к базе проверять соединение, если разрыв, то переподключится. У меня знакомые писали программу, которая постоянно держала соединение открытым, а все программы слали запросы через нее. Но там была причина, т.к. Была купленна ограниченая лицензия на Oracle, с поддержкой максимум 10 соединений, а пользователей было несколько сотен. |
| Автор: Idsa 24.9.2008, 13:48 | ||||
Интересный workaround
Все зависит от специфики приложения. Но в общем случае лучше не держать открытое соединение, а открывать/закрывать (при этом благодаря Connection Pool физическое соединение, как правило, будет создаваться только один раз). |
| Автор: MasterOfCode 24.9.2008, 13:56 | ||
Т.е. получается что большое время на конект к базе будет тратиться только один раз, а на остальные конекты времени уходить меньше в связи с тем, что физически коннект не создается? Если да, то тогда смысла держать коннект постоянно открытым - нет. Добавлено через 1 минуту Дешево и сердито |
| Автор: RedButterfly 24.9.2008, 15:20 | ||||||
Почитала про Connection Pool интересно а то я думала, что каждый раз создавать соединение придется....и прога будет тормозииииить.... можно всем вопрос немного не в тему? руководитель - программист делфи и я ему потихоньку объясняю что пишу как ему объяснить, что датасет - это не окно в базу данных? (он говорит, что датасет - это типа рекордсета в делфи, наверное) или я ошибаюсь на счет датасета? |
| Автор: RedButterfly 25.9.2008, 10:03 | ||||||
| про теорию: у меня в программе Connection лежит не в классе c формой и DataSet тоже не в классе с формой при запуске программы нужно загрузить в ListBox все строки таблицы датасета то есть при запуске программы делается так:
вот эта строка обязательна: ENApp app = new ENApp(); и уже в Work
кажись вот так писать в методе
неправильно но без этого не могу вызвать методы этого класса и вообще у меня столько сомнений по поводу того, что какой метод/объектик где должен лежать...тот же самый датасет...он там (в классе без формы) лежит лишь по требованию высшего...но мне кажется, что "видимые" объекты должны лежать в форме...датасет причислила к видимым потому, что он в TollBoxe посоветуйте пожалуйста что-нибудь |
| Автор: RedButterfly 25.9.2008, 11:41 |
| после написания этой функции программа стала медленней закрываться. Нажимаю на крестик а она ещё секунду думает закрываться или нет... :( |