Witam! Mam taki problem... Piszę program w C# w Visualu 2010. Jest to lista kontaktów. Chciałabym aby poza nazwiskiem, imieniem itp., w formularzu była także lista wyboru z stanowiskiem pracy. W tabeli __Pracownicy __mam m.in. pole Stanowisko typu int, a tabela __Stanowisko __na pola ID_Stanowisko int i Stanowisko pracy nvarchar. Jest to prawidłowo podpięte. I mam problem jak zrobić tego Comboboxa, by wybór z listy był zapamiętywany w bazie danych.
Dlaczego pole Stanowisko w pierwszej tabeli jest typu int? Chcesz zapamiętywać tylko numer stanowiska z listy?
Żeby dodać stanowisko do bazy, wystarczy wrzucić comboBox1.Text do bazy.
Stanowisko jest typu int by możliwe było utworzenie relacji między tymi tabelami
Ale po co to łączyć? Nie wygodniej odczytać stanowisko pracy z pierwszej tabeli (zamieniając ją ówcześnie na jakiś typ string'owy).
Ale w tym wypadku nie ma możliwości zrobienia Comboboxa, ponieważ mamy tylko jeden wyraz przypisany do Stanowiska... Chyba że jednak się da...
allocer napisał(a)
Ale po co to łączyć? Nie wygodniej odczytać stanowisko pracy z pierwszej tabeli (zamieniając ją ówcześnie na jakiś typ string'owy).
Robił Ty kiedy jaka tabele? Wie co to 1,2,3 postać normalna? Nie wie? To nie plećta głupot.
No tak to już w ogóle było by miodzio. Ale nie proponuj mu przetrzymywać nazwy stanowiska jako stringa w tabeli pracownicy.
To już wygodniej zrobić osobną tabelę, Id_Pracownika i ID_Stanowiska i z niej odczytywać
jeśli to jest na jakieś zaliczenie, to olać. wszystko jedno.
a jeśli program jest na serio, to lista stanowisk nie może być na sztywno — na pewno pojawią się pracownicy o nowych, nie przewidzianych w programie stanowiskach.
Fajnie... Tylko że to i tak w taki sposób nie zadziała. Wtedy w comboboxie widzimy tylko stanowisko przypisane do danej osoby, bez możliwości rozwinięcia listy i zmiany...
Właśnie wymagana jest możliwość dodawania nowych stanowisk... Projekt to jest.
Napisz jeszcze raz, powolutku i po polsku, co chcesz osiągnąć.
Jako ComboBox.DataSource
trzeba ustawić BindingSource
powiązany z tabelą Stanowisko, wówczas jako ValueMember
wybrać ID_Stanowisko
, zaś jako DisplayMember
wybrać Stanowisko pracy
(za spację w nazwie kolumny powinni Cię udusić). A jako SelectedValue
wybrać Stanowisko
z BindingSource
powiązanego z tabelą Pracownicy.
Dziękuję :) Wydawało mi się już prędzej że tak to robiłam, ale widocznie popełniałam jakiś błąd bo nie działało. Teraz już OK :) I człowiek uczy się na błędach, już więcej nie zrobię spacji ;)
Dziękuję :)