Witam,
Mam problem z kodem w C#.
Pisze program, który ma być konfiguratorem sprzętu. Wybieramy zasilanie, zabezpieczenie obwodu i inne parametry(wszystko z comboBox’ów)
Całość odbywa się tak:
Klikamy na wybrany przycisk(w tej chwili są tylko 2, będzie więcej), który uruchamia nam połączenie z bazą danych i wgranie do data set wybrane 4 parametry, po których będziemy filtrowali nasze dalsze zapytanie. Wszystkie kolumny zostały przypisane do odpowiednich comboBox’ów. Następnie idąc od góry wybieramy poszczególne zależności czym ograniczamy (filtrujemy po rzędach) liczbę wyników w bazie.
I teraz meritum problemu:
- Jak combobox’ach pogrupować powtarzające się pozycje – żeby się nie powtarzało np. 20 razy „wyłącznik”.
- Jak w C# realizuje się filtrowanie, czyli:
-wybieram z pierwszego combo napięcie 400V, bach z 320 wyników zostaje 150. Dalej podaje jakieś zabezpieczenie, bach zostaje 50 wyników itd.
Męczy mnie to strasznie, bo potrzebuje napisać aplikację dla klientów, a niestety musi być ona w C# (stety niestety, piszę w C++ i nie mam czasu na nauczenie się nowego języka) a termin goni.
Poniżej załączam przykładowy kod (bajzel straszny, ale składam moje pomysły do kupy) i screen’a formatki.
Pozdrawiam
Piotrek
private void radioBBezposredni_CheckedChanged(object sender, EventArgs e)
{
BackgroundImage = Image.FromFile("D:\\Siemens_C1.1.tif");
pParametry.Visible = true;
OleDbConnection Polaczenie = new OleDbConnection(conString);
Polaczenie.Open();
string Zapytanie = "SELECT Napięcie_zasilania"+
",Zabezpieczenie_obwodu"+
",Przekaźnik_przeciążeniowy"+
",Koordynacja "+
"FROM Dane WHERE Rodzaj_sterowania LIKE 'Rozruch bezpośredni'";
OleDbCommand Wyszukiwanie = new OleDbCommand(Zapytanie, Polaczenie);
///Wyszukiwanie.Parameters.Add("Rozruch", Parametr1);//tu wyskakuje ostrzeżenie
OleDbDataAdapter Adapter = new OleDbDataAdapter(Wyszukiwanie);
dataSet1.Clear(); // czy potrzebne jest czyszczenie tabeli?
DataSet ds = c1_bazaDataSet1;//czy to jest potrzebne?
Adapter.Fill(c1_bazaDataSet1, "Dane");
dsView = ds.DefaultViewManager; //nowe, do wywalenia
dataGrid1.DataSource = c1_bazaDataSet1.Tables["Dane"];
//Napięcie
cNapiecie.DataSource = dsView;//nowe
cNapiecie.DisplayMember = "Dane.Napięcie_zasilania";//nowe
cNapiecie.ValueMember = "Dane.ID";//nowe
cNapiecie.DataBindings.Add("Text", dsView, "Dane.Napięcie_zasilania");
Pozdrawiam!!