![]() |
|
Модераторы: gambit |
![]()
|
|
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
К примеру у меня есть 2 таблицы между ними связь один ко многим, обект релешон я не создавал, пока не знаю как им пользываться.
И так две таблицы : клиенты и улицы на которых они живут. И нужно юзеру показать список в нормальном виде (ТАБЛИЦЕ) но чтоб вместо ключей улица была написана кирилицей. Я знаю что такое запросы, в редакторе выбрал создать запрос, написал его в билдере, ну а как его пользователю отобразить не могу докумекать, по .NET 2.0 инфы на русском у меня почти нет! ПАМАГИТЕ!!! и хотелось бы этот запрос сделать параметризированым -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| Pit_Bul |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 2.10.2006 Репутация: нет Всего: 1 |
покажи поля таблиц
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Таблицы - в БД ? Или в датасете ? Если в базе, можно сделать view, который будет возвращать название улицы в отдельном поле главной таблицы. Если в датасете, можно добавить relation по ключевому полю (parent-ом будет таблица с улицами, чилдом будет таблица с клиентами), и в таблицу клиентов добавить read-only вычисляемое поле с Expression-ом типа "Parent(имя_рилейшена).поле_с_названием_улицы".
-------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
mr.DUDA, база у меня аксесовская.
Японял что таблицы все в бд, а в датасет они попадают когда при помощи адаптера я их заполняю, в следствии я могу их фильтровать. Но мне такой расклад не понравился, это долго и оперативу хавает зверски. Создавал я этот релейшн а что это дало я пока не понял Может просвятите меня, добрые юди. -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Rapalex, так не нужно все данные тянуть из БД адаптером. Достаточно только те которые нужны вытянуть по запросу. Датасет как делаем ? В коде или дизайнером рисуем ? (от этого зависит способ, которым проще добавить рилейшн) -------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
ну а я что сказал Я всё пытаюсь сделать при помощи дизайнера дата сет, ну допустим я создал релейшн, или запорос, а как результаты юзеру показать, в DataGridView. Вот в этом дело! -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
В виде плоской таблицы, повторюсь. На уровне датасета это решается добавлением "вычисляемых" колонок в таблицу (см. пример выше), т.е. колонок со свойством Expression - такие колонки не хранят данных, а получают их вычисляя значение, например берут из записи по рилейшену. -------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
Написал и ничего не отоброжается. Заполнял я это дело тейбл адаптером. Так вот, мне адаптер не очень нравится, он всю таблицу в память читает. А как создать запрос и его результаты выдать в грид, через адаптер или ещё что нибудь.
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Rapalex, SQL-запрос можно передать в первом аргументе конструктора адаптера.
-------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
Спасибо я вечером поппробую.
Блина, лохом себя чюствую, а где про это прочитать можно? Я хочю какможно больше сделать при помощи мастеров и генерации кода. -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Rapalex, это называется одним словом - ADO.NET
-------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
mr.DUDA, я понимаю что тебя изрядно достал своим незнанием, и прошу ПАЖАЛУЙСТА сделай мне проект.
Базу данных я прикрепил, она понтовая, в ней 2 таблицы: людей и ихних телефонов. Это займёт у тебя 3 мин, сгенерь какойнибудь проект довавь в него эту бд, и выдай содержимое в таблицу (DataGridView) но так как я немогу, а точнее Первый столбец телефон, а дальше ФИО человека (будет повторятся). Добавлено @ 16:21 Да, вспомнил, я в редакторе дата сета добавил свой запрос назвал его FillBy установил вопросик где надо и заполнил список нужной инфой, удовлетворяющей условие. Мне понравилось, а как называется то что я сдлал, чтоб про эти дела почитать. И есть ли другие красивые способы сделать тоже самое? СПС -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Rapalex, где база-то ?
-------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Лови:
Добавлено @ 17:25 Это называется автосгенерированный датасет, датаадаптер и т.п. если про это вопрос. Другие способы есть - например, работать с нетипизированным датасетом, датаадаптером и т.п. Почитать про всё это можно в любой книге по дотнет - хоть у Троелсена. Присоединённый файл ( Кол-во скачиваний: 52 )
WindowsApplication5.zip 33,15 Kb-------------------- ![]() |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
Спс, разобрался, единственная разница которая бы ла заметна сразу, ето то что ты каскадное обновление с удалением поставил.
И у меня вопрос из теории сразу возник. Ч то такое каскадное удаление я понимаю - удаляем родительскую запись удаляем и все дочерние. А каскадное обновление что собой представляет? Сделая я запрос (сгенерировалась вункция FillBy...) который заполняет дочернюю таблцу. Выражение в вычисляемом поле обращается к родительской таблице и находит всё чот ему надо. И второй вопрос. Я так понял что родительская таблица должна быть вся подгружена в оперативу. Что мне не очнь понравилось, но жить с этим можно. Так можно както подгружать не всю родительскую таблицу? И последнее, когда я пытался добавить строку в таблицу функция добовления берёт входными параметрами все столбцы влючая первичный ключ (а он счётчик и сам выберается) и вычисляемые столбцы (разумеется эти входные данные не на что не влияют) можно ли както от этого избавится? Сасибо! -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
полностью рабочий код Это сообщение отредактировал(а) Akella - 17.10.2006, 08:22 |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
не сомневаюсь, а что он делает? -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
||||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
Akella, понял, спасибо, а я реализовал с вычисляемыми полями. И теперь нужно думать каким же мне методом пользоваться
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
Join быстрее, мне так кажется, по крайней мере
Это сообщение отредактировал(а) Akella - 17.10.2006, 14:56 |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
Согласен, а можно всё это какимлибо образом при помощи мастеров в какойнибудь метод какогонибудь тейбл адаптера запихнуть?
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
можно
кидай на форму datasource и "облепливай" его мастером http://www.firebirdtutorial.net/sqldatasource-component.html Добавлено @ 15:19 что-то у меня в MSVS2005 не очень получается |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
кинул на форму FbDataAdapter, теперь получилось, т.к. у этой компоненты есть мастер, который поможет создать нежные компоненты, ну а грид, конечно датаАдаптер не создаст
|
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: нет Всего: 8 |
А как реализовать отображение дввух таблиц так чтоб при выботе элемента в родительской таблице содержимое дочерней таблицы содержало только дочерние элементы выбраной строки?
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Rapalex, это делается через DataRelation. WinForms будет автоматически отображать связанные записи подчинённой таблицы при выборе записи в родительской таблице, это называется data binding.
-------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |