Suchergebnisse

Suchergebnisse 1-30 von insgesamt 132.

  • Benutzer-Avatarbild

    Offizieller Geburtstags-Glückwunsch-Thread

    OliverSte - - Off-Topic

    Beitrag

    Danke ☺️

  • Benutzer-Avatarbild

    So, ich melde mal Vollzug. Der Tipp von @ErfinderDesRades hat es mal wieder gebracht. Ich musste ne Weile herumdoktorn, bis ich das an meine Bedürfnisse angepasst hatte, da ich mich mit Linq und sowas nicht so gut auskenne und alles lange googeln muss, bis es dann funktioniert. Aber jetzt ist es easy und schön fluffig geworden. Nebenbei habe ich gemerkt, dass ich die bsZusatzdaten und bsZusatzadressen ja doch an die bsAdressen binden muss, damit die automatisch gefiltert werden. Das hatte @trix0…

  • Benutzer-Avatarbild

    Ich habe jetzt einfach mal zwei ComboBoxen über das DGV gesetzt, nur um Typ und Adresse zu bestimmen. Damit wird dann einfach ein Datensatz erzeugt und im DGV angezeigt. Soweit so schön, aber ich möcht ja gern das berechnete Feld "Kunde" aus "Adresse", statt der ID im DGV sehen, was mit einer ComboBox problemlos möglich ist (DisplyMember/ValueMember). Eine Textbox kann aber ja nur Columns der dem DGV zugrundeliegenden BindingSource anzeigen. Und in der n:m Tabelle gibt's nur IDs. Hmm, wat nu? Gu…

  • Benutzer-Avatarbild

    Moin Panter, das ist ein guter Ansatz, Danke für den Denkanstoß. Es ist wohl so, dass man eine BindingSource für ComboBoxen nur über die gesamte Spalte definieren kann. Oder anders, jede Zeile enthält die selbe (!) BindingSource. Man kann die Source gar nicht pro Zelle, sondern nur für die Spalte ändern. Ich habe mit einer weiteren ungebundenen Spalte experimentiert, die nur zur Auswahl der Adresse die entsprechend gefilterte BindingSource bekommt und dann die gebundene Spalte mit ZusatzadresseI…

  • Benutzer-Avatarbild

    Moin allerseits, naja klar benutze ich ein typisiertes Dataset. Ohne das würde ich mich gar nicht trauen, hier eine Frage zu stellen Ich habe mein Projekt einmal auf das Nötigste reduziert und mit allem Pipapo (zwei Helper-Dlls und Testdaten) hier angehängt. Sollte so kompilieren und laufen. Testdaten sind auch drin. Sollte jemand neue Adressen anlegen wollen, bitte zuerst den grünen Button drücken und dann die Felder ausfüllen und speichern! Als erstes wählt man die Adresse, der man Zusatzadres…

  • Benutzer-Avatarbild

    Moin moin, ich habe hier ein DGV mit zwei Combobox Spalten. In der ersten Spalte "Adresstyp" wähle ich den Adresstyp aus (Kunde, Lieferant, Hersteller, etc.). In der zweiten Spalte wähle ich eine Adresse, wobei mir der Name angezeigt, aber die ID im Dataset gespeichert wird (DisplayMember, ValueMember). Das DGV ist mit einer BindingSource ans Dataset gebunden, die Combobox in Spalte 2 hat eine eigene BindingSource an die Adressen. Die Combobox in Spalte 1 fülle ich manuell über .Items.Add(""). D…

  • Benutzer-Avatarbild

    Vielleicht ist das hier auch mal interessant für dich Fragen zu Dataset->Db

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Ja, völlig klar. Ich hatte das von Anfang an gewusst und wollte dich nur testen Super, hab's eingebaut und getestet. Klappt wunderbar. Danke sehr! Aber sag mir mal, bin ich komisch, weil ich so einen Fehler finde?

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Zitat von ErfinderDesRades: „Ja, ich glaub inzwischen, es ist durchaus möglich, bei Löschungen die Reihenfolge umzudrehen. Ist zwar weniger effizient, als wenn die DB sich selbst um Löschweitergabe kümmert, aber dass sich deswegen Fehler einstellen fällt mir grad nicht ein. “ Ohh, das ist ein schöner Ansatz. Ich habe nach etwas wie Reverse gesucht, aber in List nicht gefunden. Einfach Umcasten nach Aufzählung, klasse Das funktioniert. Ich muss im Dataset die UpdateRule auf Cascade setzen, damit …

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Ich bestätigte, dass ich die UpdateRule.Cascade eingestellt hatte. Zusätzlich sagte ich, unabhängig von Zeile 1, dass ich keine Löschweitergabe wünsche. Klar, das hat mit der UpdateRule gar nichts zu tun. Es ist auch egal, was sich da einstelle. Die IDs ändern sich nämlich nicht. Ich habe deinen Persistieren Code etwas verändert, nämlich eine RankedTable2 Liste erstellt, in der die Childs vorne stehen. Ob ich es richtig gemacht habe, weiß ich nicht. Diese nutze ich dann im Save() für die Deletio…

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Ja, hab ich. Die Löschweitergabe ist für mein Projekt nicht akzeptabel. Es muss verhindert werden, dass beim Löschen von Mitarbeitern die Termine mit rausfliegen. Dazu ist der Mechanismus auch gedacht. Also stelle ich die Löschregel wieder auf "None", was in MySQL "Restrict" entspricht. Nun passiert wirklich merkwürdiges. 1. Ich lösche den Termin eines MA, alles ok. Ich lösche diesen Mitarbeiter, auch ok. Beim Persisitieren knallts. Würde ich nach dem Löschen des Termins persisitieren, dann erst…

  • Benutzer-Avatarbild

    Ich würd das Ding in ein zweites DataSet laden und die miteinander vergleichen. Ist bisschen mehr Arbeit, aber dann haste Sicherheit, was unterschiedlich ist. Gibt's da nicht auch Merge-Funktionen, mit denen man die Änderungen gleich übernehmen kann?

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Ok, das habe ich absichtlich gemacht. Aus Gründen der "Komponenten-Sparsamkeit". Wir ja sicherlich immens viel Code im Hintergrund generiert. Ich probier das aus und geb Bescheid. Danke für deine Hilfe Nein, das war nicht das Problem. Auch mit neu erstellten BindingSourcen für die Comboboxen klappt es nicht

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Na ja, ne, wenn ich dem DGV die DataSource vorm Speichern wegnehme, klappt es ja problemlos. Das aber sollte doch von den WinFormHelpers gemacht werden, so dachte ich jedenfalls. Dort scheint es ein Problem zu geben oder @ErfinderDesRades?

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Da sag ich mal ganz artig "Dankeschön" Das hat in der Tat geholfen. Schon tut sich das nächste Problemchen auf. Ich lege einen neuen Mitarbeiter an (ID=-1) und einen neuen Termin mit diesem Mitarbeiter. Beim Speichern kommt die Ausnahme "Der DataGridViewComboBoxCell-Wert ist ungültig.". Mit Erscheinen der Fehlermeldung ist die Mitarbeiter.ID getauscht (in MitarbeiterDGV). Nach dem ersten Wegdrücken ist der Mitarbeiter.Name (in TerminDGV) weg, nach dem zweiten Wegdrücken ist alles schick, dann wu…

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Ja gern. Das Solution Backup habe ich mit deinem SolutionExplorer erstellt. Das Main-Projekt ist MysqlTest. Zunächst die beiden defekten Verweise im Subprojekt MySqlHelpers reparieren: per NuGet MySql.Data v6.10.9 installieren beide Verweise (Mysql.Data und MiniHelpers) neu erstellen (löschen, neu anlegen) Dann kompiliert das. Starten - [Verbinden] klicken - Mitarbeiter "Asia" löschen - Bämmm! Ach noch was. Die Zugangsdaten zu meinem MySQL-Server sind in den Einstellungen gespeichert. Über die F…

  • Benutzer-Avatarbild

    Ah so. Danke für die Aufklärung. Ich wunderte mich, dass in einem Subprojekt im Backup Verweise nicht aufgelöst werden konnten und hab das dann mal direkt öffnen wollen, um das zu reparieren. VS meckert dann herum, dass keine NuGet Pakete verwaltet werden können, ohne das das Projekt gespeichert wird u.s.w. Hab ich wohl falsch gemacht und muss die Verweise im Hauptprojekt reparieren. Warum eigentlich?

  • Benutzer-Avatarbild

    Ist das ein Bug oder Feature, dass die Verzeichnisse "packages" und .die sln Dateien eingebundener Projekte nicht mit gesichert werden?

  • Benutzer-Avatarbild

    Ein Problem ist gelöst, steht auch schon das nächste an. Ich habe die WinFormHelpers von @ErfinderDesRades eingebunden und das DataSet registriert. So gibt es keine Fehler mehr bezgl. der BindingSources. Wenn ich einen Mitarbeiter, der nicht mal Termine hat, lösche, kommt nun diese Fehlermeldung. Das passiert nur mit den WinFormHelpers. Es ist egal, welche Fremdschlüsseleinschränkung eingestellt ist, (NONE oder CASCADE).

  • Benutzer-Avatarbild

    Der Fragesteller wird sich schon Gedanken gemacht haben. So wie ich seine Anforderungen verstehe, kommt es einfach nicht vor, dass zwei Leute denselben Datensatz bearbeiten. Da steht EIN Techniker vor EINER Anlage und gibt dazu Wartungsdaten ein. Nochmal, guck dir "Dataset only"an und erstelle dir ein Dataset ... DatasetOnly: DB-Programmierung ohne Datenbank Dataset->Db allgemeine Zugriffs-Lösung für: MySql, Access, SqlCe, SqlServer, DatasetOnly

  • Benutzer-Avatarbild

    Moin Ostseebengel! Guck mal nach "Dataset only" hier im Forum. Dann lernst du, wie man mit einem Dataset und Bindingsourcen arbeitet. So ein Dataset kannste komplett in ein XML schreiben, also etwa mit Dataset.SaveXML(). Oder alternativ eine MySQL DB schreiben, dazu guckst du nach "Dataset -> DB". Der Trick ist der Zwischenschritt "Dataset". Ich verstehe doch so, dass du unmittelbar auf der SQL-DB herumwurschtelst. Das wirst du wohl ändern müssen Viel Spaß! Viele Grüße Oliver

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Ja dann geht das ohne Knirschen. Ich habe das für 2 von 4 DGVs gemacht (Mitarbeiter und untere Termine). Aber jetzt pass auf. Der EDR hat da in einem Tut mal was von Wiederverwendbarem Code in Regions geschrieben. Da steht im FormClosed sowas: VB.NET-Quellcode (6 Zeilen) Dann geht es auch ohne Wegziehen der BindingSources. Ach Gott, die WinFormHelpers. Da isses ja drin enthalten. Man muss die nur einbinden und in StartShown() das Dataset registrieren. Start heißt mein Form. (In der c# Solution g…

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Der Exkurs zur Benennung von Entitäten ist mal wieder ergebnislos verlaufen, denn da hat ja ein jeder seine Meinung. Leider wurde mein schöner "Fragen zu Dataset->DB"-Thread dadurch ein wenig unübersichtlich, aber darum kümmert sich vielleicht ein Admin (löschen) oder auch nicht. Nun gehe ich mal weiter zum Thema. Ich habe mich mit DGV und Comboboxen a la VierViews von @ErfinderDesRades beschäftigt. Klappt soweit wunderbar, ich bekomme über die Combobox die ParentRow angezeigt. Doch sobald ich d…

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Zitat von MrTrebron: „Für mich umstritten ist das Dataset der falsche Weg. Entity Framework im Model First erspart dir Probleme “ Ich denke, du meintest "unumstritten". Ich habe von EF schon gehört, mich aber damit nicht beschäftigt, weil "schon wieder was Neues, bevor ich das alte kann". Hast du da mal einen geeigneten Einstiegspunkt für mich? Die Tuts vom EDR mit Beispielsolution sind ja meist sehr anschaulich und verständlich. Gibt es sowas in der Art auch zu EF? Ich bin geneigt da mal reinzu…

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Danke @ErfinderDesRades für den Schlag auf den Hinterkopf. Ich hatte die Benamung "alles klein", weil es da ja unterschiedliches Handling auf Windows und Linux gibt. Dachte, mit alles klein sei ich auf der sicheren Seite. Bin ich aber wahrscheinlich auch, wenn ich die Tables korrekt im Code anspreche. Nebenbei noch ein kleines Problemchen mit DefaultValues bei TimeSpan und DateTime gelöst Kannste nämlich nicht in den Dataset Designer eintragen. Stattdessen lässt man da <DBNull> stehen und schrei…

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Ich hab da mal Screenshots vom MySql und Dataset angehängt. Der Datentyp im Dataset ist DateTime, in MySql TIME. Damit produziere ich die o.g. Fehlermeldung. Frag mich nicht, warum da was von TimeSpan steht, bzw. woher das kommt. Nun habe ich im Dataset der Uhrzeit einfach mal den Datentyp TimeSpan gegeben. Und schwupps, läuft * Dataset * MySql * DateTime * DATE * TimeSpan * TIME

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Nun habe ich das einfach Testprojekt mit nur einer einzigen Tabelle fertig. Jetzt geht's an Relationen. Ziel ist eine Terminverwaltung. Ein Termin besteht aus einem Kunden, einem Mitarbeiter, sowie einem Datum und einer Zeit. Auf dem MySQL Server sind die Datentypen für Datum DATE und Zeit TIME. Im Dataset habe ich System.DateTime eingestellt. Ja, da geht es schon los, denn ein DateTime Objekt enthält Datum UND Zeit. Beim Laden mit _Persistance.FillAll() rummst es dann auch gleich in der Zeile: …

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Ja prima, Die MiniHelpers aus DbPersistance2020 sind in AllTogether2021 enthalten und werden dort sinnvoll durch MySqlHelpers ergänzt. Damit habe ich den Persistieren Teil abgedeckt. Die WinFormHelpers stecken im AllTogether2020 Paket. Da ist dann auch GeneralHelpers und der DbGenerator zu finden. Nun müsste man mal sehen, wo welche Funktion beschrieben steht, dafür gibt es ja diverse Tutorials. Tja, die Nadel im Heuhaufen und ich weiß nicht mal, wie die aussieht.

  • Benutzer-Avatarbild

    Fragen zu Dataset->Db

    OliverSte - - Daten(bank)programmierung

    Beitrag

    Also brauch ich i.d.R. die DBExtensions für DB-Projekte, weil noch mehr Funktionalität drin steckt? Und die WinFormHelpers, wenn ich mit mehreren Forms auf einem Dataset arbeiten möchte? Weil die MiniHelpers sind ausschließlich zum Persisitieren?

  • Benutzer-Avatarbild

    @Kilu Ganz wunderbar, was RodFromGermany dazu schreibt. Entscheidend ist das: Durch public string f2_zeit { set { textBox1.Text = value; } } in Form2 wird die Variable aus Form1 sichtbar. Form1 kann dann mit f2.f2_zeit = textResult.Text; auf die Variable in Form2 zugreifen und sie verändern. Mit dem Übergeben von Variablenwerten, wie das in dem dem Video gezeigt wird, hat das nichts zu tun. Man macht die Variablen public und greift über die setter Methode darauf zu. Das habe ich dazu mal auf die…