Hallo,
ich bin leider absoluter Anfänger und versuche mich gerade so durch zu kämpfen, daher bitte etwas Nachsicht, wenn die Frage komplett dumm sein sollte.
Ich habe ein Fenster in dem ich Fahrzeugdaten aus einer Tabelle abrufen und auch schreiben will.
Oben habe ich mir ein Combobox gesetzt, hier würde ich gerne als Items die Daten aus der Spalte FahrzeugID als Auswahlmöglichkeit haben.
Wie kann ich das realisieren, so das die Auswahlmöglichkeiten nicht fest sind, sondern sich der Tabelle anpassen ?
Außerdem wie kann ich den Wert der Auswahl übertragen? Also damit ich dann wiederum abfragen kann und die anderen Felder ausfüllen lassen.
mein folgender Versuch hat leider nicht geklappt.
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
txt.Text = DatenbankAbfrage.Datenbankabruf(cbFahrzeuge.SelectedItem);
}
Ich mache halt die Abfrage über den Befehl
SqlCommand command = new SqlCommand("select * from TFahrzeuge WHERE FID ="+selection, connection);
Vielen Dank schon mal
Auch hallo,
i.Z. mit ASP.NET könnte das hier helfen: https://learn.microsoft.com/de-de/aspnet/web-forms/overview/ajax-control-toolkit/combobox/how-do-i-use-the-combobox-control-cs Und was verändernde Datenbankoperationen angeht: [Artikelserie] - SQL...
Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉
Hallo Ralle77
Hier sind zwei Artikel, die du lesen und verstehen solltest. Damit lösen sich deine Probleme quasi von selbst.
https://mycsharp.de/forum/threads/118261/artikel-mvvm-und-databinding
https://mycsharp.de/forum/threads/111860/artikel-drei-schichten-architektur
Da das etwas aufwändig ist nochmal zu den konkreten Problemen für den Anfang:
Wie kann ich das realisieren, so das die Auswahlmöglichkeiten nicht fest sind, sondern sich der Tabelle anpassen ?
Entweder mittels DataBinding: https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/?view=netdesktop-7.0
Hier wie man das anwendet: https://www.c-sharpcorner.com/article/explain-combo-box-binding-in-mvvm-wpf/
Oder (so macht man das nicht):
<ComboBox x:Name="fahrzeugAuswahl" />
foreach (var fahrzeug in fahrzeuge)
{
this.fahrzeugAuswahl.Items.Add(fahrzeug.Name);
}
Gruss
Alf
Hallo,
vielen Dank schon mal für die Hilfe...
aber ich glaub das ist zu hoch für mich, ich blick da absolut nicht durch
"..zu hoch.." --> grundsätzlich ist in der SW-Entwicklung von einem häufig(er)en Ändern oder Erweitern einer Software -im Idealfall- an einer (zentralen) Stelle auszugehen. Am Beispiel des Links zu csharpcorner: wenn es Änderungen an den Daten gibt (...ID=3,Name=”Arvind”..., ID=5,Name="Weihnachtsmann",...) gilt es diese nur an einer Stelle vorzunehmen. Oder die Datenquelle ändert sich zu einem anderen DB-System → DataBinding
Weitere Stichworte die das Ändern oder Erweitern aus menschlicher Sicht erleichtern: Schichtentrennung, sprechende Namensgebung, Namespaces, SW-Tests, Versionskontrolle,...
Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉
@M.L.
Mit zu hoch meint Ralle77 vermutlich, die ganzen Konzepte die ihm entgegen geworfen wurden.
Ich halte z.B. WPF mit MVVM alleine schon für den absolut falschen Weg um jemanden in die Software Entwicklung zu bringen.
Allein WPF mit MVVM erfordert schon ein sehr gutes Verständnis von OOP und auch einigen Design Patterns wie Command, Oberserver etc.
Dies ist gerade für einen absoluten Anfänger einfach eine zu hohe Hürde.
Von daher würde ich eher den Ansatz einer Konsolenanwendung oder ggf. Winforms empfehlen.
Dort kann man sich dann mit den Konzepten der Sprachen und cp. vertraut machen ohne sich um MVVM, Architektur etc. Gedanken zu machen.
Ebenfalls kann man für kleine Tests auch die dotnet Fiddle verwenden um Online etwas rumzutesten.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.