|
|
|
Получить DataAdapter по DataTable
|
|||
|---|---|---|---|
|
#18+
Сейчас просматриваю типизированный датасет...Каждой таблице ассоциирован свой тейбладаптер, покапался в мемберах датасета, ничего похожего на это не нашел, подскажите кто знает, можно ли получить объект сабж..или наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 10:49 |
|
||
|
Получить DataAdapter по DataTable
|
|||
|---|---|---|---|
|
#18+
Диалог PreviewData из VS2005 тоже откуда-то информацию черпает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 13:26 |
|
||
|
Получить DataAdapter по DataTable
|
|||
|---|---|---|---|
|
#18+
Типизированные адаптеры не являются членами класса датасета. Они создаются в отделньом неймспейсе. Полистай файл dataset.designer.cs и увидишь в самом низу классы адаптеров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2007, 19:18 |
|
||
|
Получить DataAdapter по DataTable
|
|||
|---|---|---|---|
|
#18+
Да, ты прав. Жаль что нельзя получить из таблицы ссылку на объект адаптера :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2007, 08:15 |
|
||
|
Получить DataAdapter по DataTable
|
|||
|---|---|---|---|
|
#18+
Можно попробовать с помошью отражения создать новый экземпляр адаптера. Мастер всегда называет адаптер так же как таблицу+"TableAdapter". Что-то типа Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 17:40 |
|
||
|
Получить DataAdapter по DataTable
|
|||
|---|---|---|---|
|
#18+
_jtДа, ты прав. Жаль что нельзя получить из таблицы ссылку на объект адаптера :( Таблица не знает как лазить в базу и не должна знать. Помещать в таблицу адаптер было бы нарушением правил инкапсуляции. Зачем получать из таблицы адаптер, если можно получить таблицу из адаптера через GetData() ? Если уж так не терпится, нужно просто сделать хелпер, в котором указать связь между типом таблицы и типом адаптера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 18:28 |
|
||
|
Получить DataAdapter по DataTable
|
|||
|---|---|---|---|
|
#18+
Вообще наверное действительно не должна, но хочется регулярно. Ведь как ведет себя мастер в студии? При "добавлении таблицы" кладет на форму BindingSource и TableAdapter. Причем BindingSource может быть нужно несколько на отдну таблицу, а вот ситуацию, когда на одной форме нужно два идентичных адаптера я себе не представляю. Почему бы не объявить адаптеры static и не париться? Все равно никакого внутреннего состояния у адаптеров нет. Там DataAdaper + набор SqlCommand, который у всех экземпляров одного адаптера все равно создается идентичным и Connection, который либо свой собственный у каждого, либо один общий у всех. Нафига плодить экземпляры для каждой формы? Плюс к тому TableAdapter скрывает некоторые важные свойства DataAdapter. Вобщем TableAdapter - это плохо :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2007, 20:10 |
|
||
|
Получить DataAdapter по DataTable
|
|||
|---|---|---|---|
|
#18+
Я сделал функцию которая проходит рекурсивно все таблицы в датасете делая обновление. Вот и нужно было получить из таблицы ассецеированный адаптер. Тут пошли мысли, как бы было здорово сказать таблице чтобы она сама передала обновления себя... Сделал через полученный из Type метод GetData, анализируя его возращаемый тип, получая тип таблицы..получается как-то кверх ногами, но другого способа я не нашел. SenjaМожно попробовать с помошью отражения создать новый экземпляр адаптера. Мастер всегда называет адаптер так же как таблицу+"TableAdapter". Что-то типа Код: plaintext 1. 2. Хотелось бы, чтобы ничего не зависло от имен, но спасибо Senja, я не знал что можно екземпялры создавать через тип. Ты говоришь про статические датаадаптеры, у меня вопрос) Я еще это не проверял..Как ведет себя экземпляр датасета? если я изменяю его один экземпляр, допустим на 1 форме, что будет с другими? Впрочем экземпляр он и есть экземпляр..Видно придется передавать ссылку на один датасет созданный где-нибдь в главной форме другим формам через свойтсва чтоли...Тогда возникает проблема с визуальной привязкой контролов..можно конечно создать екземпялр также визуально, а в коде инициализации присваивать ему ссылку датасета из главной формы, но что-то получаетс как-то все не тат, как хотелось бы...Нет примера как это правельно делать, приходится выдумать какой-то глючный код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 16:31 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=34768908&tid=1352642]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 315ms |

| 0 / 0 |
