ADO.NET BindingSource

0

Witam
Jak połączyć przykładowo dane z dwóch TextBox'ów tak aby można było to zapisać w pojedynczej komórce bazy danych korzystając z DataBinding.
Próbowałem łączenia dwóch wartości z tych TextBox'ów i zapisania do 3 niewidocznego textBoxa, który był połączony dzięki BindingSource z bazą. O ile wprowadzanie danych do formularza jest prawidłowe (połączona wartość w TextBox3 zapisuje się w bazie), to wyświetlanie istniejących rekordów z oczywistych względów nie uwzględnia tych dwóch pierwszych. Można byłoby kombinować z dzieleniem stringa z TextBox3, ale na pewno istnieje prostszy sposób. Jaki?? Z góry dzięki

0

nie da sie. to klasyczny problem "imie-nazwisko" vs. "imienazwisko". databinding potrafi tylko przekazywac kolekcje i/lub konkretne obiekty w gore i w dol, oraz wyciagac/wpychac do nich pojedyncze wartosci ich pol lub ew. wyciagac kolejno obiekty z kolekcji..

jedyne sensowne (zwykle..) dwa sposoby na rozwiazanie tego problemu to:

  • zmienic to, co Ci databinding dostarcza, tak, aby faktycznie przylatywaly dwa pola a nie jedno zlepione. np. w jakimstam zapytaniu sql dodac imie+' '+nazwisko as imienazwisko [i potem obsluzyc jak edytowane wartosci wroca], np. majac datatable/row powstrzymac sie od ich podawania jako datasource bindingsource'a, tylko tuz przed tym recznie dogenerowac im kolumne z wlasciwymi danymi [i potem obsluzyc jak edytowane wartosci wroca] i temu podobne

  • zmienic sposob wyswietlania - np, zbudowac wlasna kontrolke, zbudowana z dwoch textboxow, databindowalna, ktora w srodku w momencie gdy przyjda zlepione dane - rozdzieli je sobie i zaladuje recznie txtboxy, a gdy dane maja wrocic - wygeneruje tekst zlepiony. paradoksalnie, powinno to byc duzo wygodniejsze w uzyciu niz poprawianie SQL'a czy łatanie w locie danych ktore przechodza Ci przez BindingSource

1 użytkowników online, w tym zalogowanych: 0, gości: 1