Prosta baza danych

0

Czesc,

Zaczalem uczyc sie C# i staram sie napisac naprawde prosta baze danych. Mam pacjentow i ich badania. Do kazdego pacjenta moze byc przypisane jedno lub wiecej badan, czyli prosta relacja jeden do wielu. I mam mnostwo, pewnie glupich, pytan :)

  1. Poradzilem juz sobie ze zrobieniem datagrida z lista pacjentow (zawiera kolumny pacjentID i imie) i drugiego datagrida wyswietlajacego badania (badanieID, pacjentID i wynik) zaznaczonego pacjenta. Robie to mniej wiecej tak:
     private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                int pacjentId = (int)dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value;
                if (pacjentId > 0)
                {
                    this.badaniaTableAdapter.FillByPacjentID(this.lab_testDataSet.badania, pacjentId);
                }
            }
            catch (Exception ex) { }
        }
 

1a. Czy moge jakos pobrac pacjentID korzystajac z nazwy kolumny a nie jej numeru, czyli cos w rodzja (...).Cells["pacjentID"] zamiast Cells[0] ?

1b. Lapie i ignoruje wyjatki bo kiedy np. zmieniam sortowanie w datagridzie to program sie wywala. Czy to prawidlowy sposob odswiezania drugiego grida czy jest jakies bardziej eleganckie rozwiazanie?

  1. Chcialbym stworzyc sobie formularze do tworzenia nowego pacjenta i nowego badania. Nie chce tego robic przez datagrida tylko wlasnym formularzem. Jak powinienem to zrobic? Najchetniej zrobilbym to tak, ze mam pod guzikiem otwarcie nowego forma, on sobie tworzy pusty row dla tabeli pacjenci, textbox z imieniem jest do niego jakos zbindowany i jesli dam 'zapisz' to ten row zostanie dodany do bazy danych. Jednak szukam i nie bardzo jestem w stanie znalezc opis jak bindowac textboxa do takiego pustego rowa. Moze ktos poratowac przykladem?

2a. Kiedy stworze juz sobie nowego pacjenta to jak przekazac z powrotem do glownego forma ID swiezo utworzony pacjentID zebym mogl go zaznaczyc w datagridzie?

2b. Jesli chce dodac nowy wynik badania do pacjenta to rowniez chcialbym miec do tego osobny formularz. I chcialbym mu jakos przekazac ID pacjenta ktorego dotyczy owe badanie. Jak prawidlowo powinienem to zrobic? Przekazac przez konstruktor czy jakos inaczej.

Najchetniej zobaczylbym jakies przykladowe kawalki kodu, bo .NET jest dla mnie nowe i jeszcze nie bardzo potrafie sie przestawic na czytanie jego dokumentacji.

dzieki wielkie!
janek

0

Może zrób operacje na datasecie(coś a'la baza danych, składnik ADO.NET) , a potem tylko wyświetlaj wyniki przez grida?
Co do przesyłania informacji między formami, to możesz użyć delegacji, kiedyś przekazywałem zmienne przez konstruktor formy-dodajesz 2 konstruktor z jakimś wejściem i potem przetwarzasz.

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