Связь формы и отношений

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Связь формы и отношений

Сообщение dmitriy22 » 25.07.2006 (Вт) 12:27

У меня возник вопрос....: я сделал базу и создал 2 таблицы, связанные отношением один ко многим т.е. в первой таблице прописан ID? который расписан во второй таблице...пример(ID клиента - в1-ой, а во вотрой - его имя, затем в програме я хочу вывести в одном окне таблицу 1, где вместо ID стояло бы ИМЯ которое находится во второй таблице....вот это у меня и не получается....как это реализовывается...подскажите пожалуйста....
надеюсь понятно объяснил....? :roll: а то я застопорился.... в книжках только теория и ни где не найду примерчик... я например пробую с dataRelation ... но что-то не выходит ничего....вот и обращаюсь к вам с советом... :?:
Я не волшебник, я просто учусь.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 25.07.2006 (Вт) 12:42

ну сделай селект из первой базы и второй
в условиях поставь где id первого = id второго
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 25.07.2006 (Вт) 13:13

а как это программно написать...
я создал 2 dataset в одном 1 таблица в другом 2-ая.....затем я делаю метод Fill ... у меня выходит первая таблица но с ID, а имя я прописываю через sqlCommand... или как, или надо один датасет сделать, но так нельзя результата нет....???
Я не волшебник, я просто учусь.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 25.07.2006 (Вт) 13:25

на пример так:
Код: Выделить всё

RS.Open("select rab.foto 'Фото', rab.fio 'ФИО', stajer.daterojd 'Дата рожд.', stajer.datepriem 'Дата приема', stajer.doljn 'Должность', stajer.tiprab 'Тип работника', stajer.sklad 'Место работы',  stajer.tel 'Телефон', stajer.inst 'Инструктор', stajer.viddopys 'Допуск к работе' from stajer, rab where stajer.rabid = rab.id order by fio", DB, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 25.07.2006 (Вт) 15:01

а если я сделал так :
Код: Выделить всё
        SqlConnection1.Open()
        SqlSelectCommand1.Connection = SqlConnection1
        SqlSelectCommand1.CommandText = "select 'RoundID' FROM tblRoundTeam"
        SqlSelectCommand1.ExecuteNonQuery()
        SqlConnection1.Close()
то как потом програмно загнать его в элемент управления....к примеру в datarid.... :oops:
Я не волшебник, я просто учусь.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 25.07.2006 (Вт) 15:25

хех, а это уже не ко мне
я sql server органически не переношу,
а с акцесом очень редко работаю
плюс использую ADO, а не ADO.NET
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 25.07.2006 (Вт) 16:02

Не парься. создай 1 датасет, заслав в датаадаптер SQLCommand
слепленую по образу
SELECT
[табл1].[поле1],
[табл1].[поле5],
[табл1].[поле4],
[табл2].[поле1]
FROM [табл1]
INNER JOIN [табл2] ON [табл1].[ID]=[табл2].[ID]

А еще проще создай вьюху БД, в которой все это уже будет собрано,
а из проги обращайся напрямую к ней...
Max

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 26.07.2006 (Ср) 16:23

kroskros про view щас как раз читаю.....пока правда не понял его плюсы и минусы.....ты не можешь сказать,основываясь на своем опыте???
Я не волшебник, я просто учусь.

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 26.07.2006 (Ср) 16:40

ммм ... ээээ...
представление являет собой, собственно, такой же запрос, как и СЕЛЕКТ. Обычно используют, когда надо часто обращаться к определенным данным, сформированным из разных таблиц.

в товоем случае это удобно тем, что в менеджере БД
часто есть графический интерфейс для формирования представлений,
что несколько облегчит те писание оных.

кроме того можешь обращаться к нему, как к обычной таблице...

ой... вот тока ВСТАВЛЯТЬ и удалять данные
не удасться через него. без триггеров... вроде...
потому и VIEW называется - для ПРОСМОТРА данных предназначен
Max

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 27.07.2006 (Чт) 9:01

kroskros спасибо большое.....я как раз в вьеере смог найти ошибку...удобная вещь...!!!
короче у меня была такая фигня, что я делал 2 отношения из одной таблицы к одному и тому же ID другой таблицы....а этого как оказалось делать нельзя....и пришлось сделать еще одну таблицу как бы дочернюю....и всё работает....!!!!! :P
ну теперь я развернусь.....[img]http://yarchat.chatzme.com/img/pizdato[1].gif[/img]
Я не волшебник, я просто учусь.

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 27.07.2006 (Чт) 9:05

kroskros
а вот кстати код который у меня теперь работает...
Код: Выделить всё
SELECT     dbo.tblRoundTeam.Round, dbo.tblTeam.Team, a.Team AS Expr1
FROM         dbo.tblRoundTeam INNER JOIN
                      dbo.tblTeam ON dbo.tblRoundTeam.TeamHomeID = dbo.tblTeam.ID INNER JOIN
                      dbo.tblTeam a ON dbo.tblRoundTeam.TeamGuestID = a.ID


в втором видишь таблица tblTeam а (вот где ньюанс...)
:wink: а в первом случае tblTeam
Я не волшебник, я просто учусь.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33

    TopList