Witam wszystkich. Potrzebuję zrobić program w C#, który będzie sprawdzał dwie tabele ze sobą i gdy jedna z nich się zmieni program będzie updateował/dodawał odpowiednie jednej z tabeli (Wszystko będzie jednostronnie tzn. tylko jedna tabela będzie się zmieniała ). Pytanie jak to zrobić? Mam pomysł z DataGridView : dane z jednej tabeli "zassać" np. do datagridview1, a do datagridview2 drugą. W datagridview3 byłyby różnice ( czyli dane do update/insertu ). Nie wiem jak zabrać się za porównanie tabel i "wrzucenie" ich do datagridview3. Utknąłem na tym, że pobrałem dane z tabel do dgv1 i dgv2. Następne pytanie zrobiłem Form1 i dodałem klasę do projektu. Jest możliwość aby w klasie były widoczne funkcje z Form1 ( chodzi mi o DataGridView ). Z góry dziękuję za pomoc :).
Brak chęci do pomocy? :(
Witam,
A po co chcesz do tego używać DataGridView? Wystarczy dobrze przygotować dane, dodajesz kolumny z datą ostatniej modyfikacji w jednej i drugiej tabeli i synchronizujesz. Na upartego można zrobić to na poziomie bazy danych albo jakiegoś skryptu.
Pozdrawiam,
mr-owl
Dzięki za odpowiedź, niestety porównywanie na poziomie bazy danych odpada, choć wiem, że byłoby to jedno z lepszych/łatwiejszych rozwiązań ( przynajmniej jak dla mnie ).
Witam,
Może podaj przykład struktury bazy danych którą chcesz porównać
Pozdrawiam,
mr-owl
Podam przykład tabeli na której przeprowadzam testy :
CREATE TABLE [dbo].[uzytkownik](
[id] [int] IDENTITY(1,1) NOT NULL,
[imie] varchar NOT NULL,
[nazwisko] varchar NOT NULL,
[plec] varchar NOT NULL,
[wiek] [int] NOT NULL,
[kraj] varchar NOT NULL,
[data_ur] [date] NOT NULL,
[stanowsiko] varchar NULL
Ale wydaje mi się, że struktura jest tutaj mało istotna.
To jak chcesz dane synchronizować jeśli nie zwracając uwagi na strukturę? Poza tym podaj kształt obu tabel jak i jakieś szczegóły na temat lokalizacji danych.
Pozdrawiam,
mr-owl
P.S. Te VarChar (zamiast NVarChar) to tak celowo czy przez przypadek?
Tabele są zbudowane tak samo, wiem że do int nie mogę wrzucić varchara wiadomo. Tak w roli wyjaśnienia jedna tabela będzie kopią drugiej tabeli, ale tylko jedna tabelę będzie użytkownik zmieniał sam. Do tego chce zrobić program który będzie weryfikował czy coś się w tej tabeli użytkownika zmieniło i wrzucać ją do drugiej tabeli. Tak jak wspomniałem wcześniej wszelakie zapytania z poziomu np sql manangment studio odpadają, WSZYSTKO ma się robić za pomocą C# -> LINQ.
Witam,
Czy będzie więcej niż jeden użytkownik? Bo jeśli tak to już na dzień dobry może być rozjazd w id
Pozdrawiam,
mr-owl
Szalony napisał(a):
Tabele są zbudowane tak samo, wiem że do int nie mogę wrzucić varchara wiadomo. Tak w roli wyjaśnienia jedna tabela będzie kopią drugiej tabeli, ale tylko jedna tabelę będzie użytkownik zmieniał sam. Do tego chce zrobić program który będzie weryfikował czy coś się w tej tabeli użytkownika zmieniło i wrzucać ją do drugiej tabeli. Tak jak wspomniałem wcześniej wszelakie zapytania z poziomu np sql manangment studio odpadają, WSZYSTKO ma się robić za pomocą C# -> LINQ.
- Po co do tego program z GUI?
- Nie potrzebujesz SQL Management Studio do uruchamiania zapytań SQL, równie dobrze może to robić Twój program.
- LINQ nie ma nic wspólnego z bazami danych.