vb Datenbank erstellen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 42 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Blackn0va schrieb:

    Ich habe in der Form ein Datagridview, das mir die Eingetragenen Daten anzeigen soll, funktioniert auch soweit. Wen ich aber das feld nicht per Datagridview, sondern direkt mit einem textfeld kopple, zeigt er mir in diesem textfeld den ersten eintrag aus der "datenbank" - ich möchte dieses feld aber für einen neuen Eintrag nutzen, es soll also leer sein.
    Das widerspricht dem Konzept Databinding.
    Wenn du eine leere Textbox anzeigen möchtest, obwohl ein Datensatz angewählt ist - ist sie per definitionem nicht "gebunden".
    Ist ja nicht verboten, aber Databinding scheidet dann für diese Textbox aus.
    Aber auch die Useability ist fragwürdig:
    Was soll die Textbox anzeigen, wenn du keinen neuen Eintrag machen willst?

    Also Zufügen neuer Datensätze ist eine Anwendungs-Design-Entscheidung, und ich löse das standardmäßig über ein eigenen Dialog (kein Form).
    Bei einem Dialog ist eindeutig, dass hier der neue Datensatz angezeigt wird, und ausserdem kann man den Vorgang jederzeit canceln.
    ja das hab ich jetzt auch so angefangen, die Fehlermeldung aus dem Bild, rührt die daher das die PC-Typ aus einer anderen Tabelle stammt und gebunden ist?

    Wenn ja, wie kann ich dann eine Combobox erzeugen mit 4 Computermodellen wie sie in der Datenbank stehen ohne das es einen Konflikt gibt?

    Denn der Plan ist es eben in einer neuen Form einen Datensatz hinzuzufügen, ich halte es ein wenig klein:

    Neu hinzufügen:

    Name
    Nachname
    Computermodell (Combobox) soll daten aus der Tabelle Computer zum auswählen auflisten. Da kommt es eben wegen dem DataBinding zu einem Konflikt.

    Mir würde eben nur einfallen eine Combobox mit einer Sammlung zu erzeugen , dann bräuchte ich aber auch die Tabelle Computer nicht, richtig? Nachteil den ich h ier sehe (denke ich), wenn ein neues Computermodell dazu kommt, kann ich diesen nicht hinzufügen ohne das Project neu zu erstellen, also zu kompilieren ?
    Bilder
    • asdddd.JPG

      67,24 kB, 934×392, 157 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Blackn0va“ ()

    Heißt also es gibt keine möglichkeit eine embeddet database mit informationen aus einer Textbox zu füttern?

    Ich habe nun eine Form erstellt, die ungebundene Textfelder nutzt, und 3 gebundene combo boxen mit den computern, handy und Notebook typen.
    Es gibt doch sicherlich eine Methode die eingegebenen Daten in das Gebundene DGV zu übermitteln.
    Bilder
    • neu.JPG

      71,83 kB, 1.064×476, 160 mal angesehen
    Der ungebundene Weg wäre (ich setze jetzt mal voraus, dass ein tDS (typ. DataSet) vorliegt), dass Du Deine Eingaben in den verschiedenen CEs machst und dann beim Klick auf [Speichern] folgendes ausführst: DeinTds.DeineDataTable.AddDeineDataTableRow(Wert1, Wert2, Wert3, ...). Die Reihenfolge und die Werttypen sind durch die DataTable im tDS festgelegt. Hilft Dir das weiter?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Blackn0va schrieb:

    Neim Beenden wird dann alles in eine XML Gespeichert so wie du es in deinem Tut erklärst ^
    ich bin etwas verwirrt. Nach diesem Post arbeitest du ohne Datenbank aber im folgenden bringst du die Rede immer wieder auf ieine embedded Database.

    Blackn0va schrieb:

    Der Sinn von dem ganzen soll sein, das ich ein Inventar einer Firma als Embedded Database erstelle.

    Blackn0va schrieb:

    Ich habe in der Form ein Datagridview, das mir die Eingetragenen Daten anzeigen soll, funktioniert auch soweit. Wen ich aber das feld nicht per Datagridview, sondern direkt mit einem textfeld kopple, zeigt er mir in diesem textfeld den ersten eintrag aus der "datenbank" - ich möchte dieses feld aber für einen neuen Eintrag nutzen, es soll also leer sein.

    Blackn0va schrieb:

    Wenn ja, wie kann ich dann eine Combobox erzeugen mit 4 Computermodellen wie sie in der Datenbank stehen ohne das es einen Konflikt gibt?

    Blackn0va schrieb:

    Heißt also es gibt keine möglichkeit eine embeddet database mit informationen aus einer Textbox zu füttern?

    Ich empfehle dir sehr dringend, derlei fundamental unterschiedliches auch zu unterscheiden - grade wenn du kommunizierst, kann man dich einfach ühaupt nicht verstehen.
    Also wovon redest du: Von einer embeddet Database, oder von einem typisierten Dataset?
    Und falls du von typisiertem Dataset redest, nenne es bitte nicht embedded Database. (also mein Vorschlag)
    @ErfinderDesRades Danke für die Antwort,

    also: Ja ich verwende eine Embeddet Database die du in einem Tutorial erklärt hast. (Ich versuche nur immer wieder, was ich mir abgewöhnen solte) verschiedene Wege nach rom zu finden.. Da hast du wohl recht.

    Es ist also eine datenbank die sich innerhalb der Anwendung befindet.

    Was ich möchte: Eine Form bei der ich einen Neuen User anlegen kann, aber wenn möglich eben ohne Datagridview (Gebunden) sondern Textfelder und comboboxen, der inhalt der comboboxen kommen aus einer anderen Tabelle des Datasets, welche eine 1:n beziehung zur Mastertabelle Personen hat.

    Mein Problem ist das ich eben keine Combobox die gebunden ist nicht als Formular verwenden kann, da es Probleme mit den Gebundenen Daten gibt. Wenn es ist kann ich ja mal das Projekt posten ..

    @VaporiZed ja das sieht gut aus, denn ich versuche ja beide wege. Die Parameterübergabe hilft mir schonmal weiter ja :) danke !
    Ich hab nen dreher drin gehabt, dachte das hat ErfinderDesRades geschrieben :) .
    Du hast ein sample hochgeladen das ein EmbeddetDatabase sample darstellt, was mir sehr hilft, Ich aber die daten aus einer Tabelle nicht in einer Combobox darstellen kann (da sie gebunden sind) für einen neuen Datensatz. Ich werde erstmal den Vorschlag von @VaporiZed versuchen.

    Warum ist Embedded Database nicht gut?
    Würdest du eine MS Sql instanz verwenden? (was ziehmlich recourcen verschwendung wäre)
    Oder einfach die Daten in ungebundene Comboboxen und DataGridViews eintragen und die werte in einer TextDatei Speichern?

    Ich bin der Meinung das es eben so viele Wege nach Rom gibt das ich schwierigkeiten habe mich zu entscheiden welchen ich nehme..

    Ich möchte einfach, strukturiert daten Speichern, möglichst in Formularen.

    Blackn0va schrieb:

    Du hast ein sample hochgeladen das ein EmbeddetDatabase sample darstellt
    Nein, das ist nur ein Dataset ohne Laden und Speichern. Da hab ich dir nur veranschaulichen wollen, wie man einen Dialog zum Editieren eines Datensatzes machen könnte...

    Blackn0va schrieb:

    Warum ist Embedded Database nicht gut?
    Wo wurde das behauptet?

    Blackn0va schrieb:

    Würdest du eine MS Sql instanz verwenden?
    Also du kannst das Dataset ganz einfach in eine .XML-Datei speichern und von dort wieder laden. Das wird am Anfang deiner Projektentwicklung einmal reichen. Wohin du die Daten später einmal persistierst, kannst du am Ende der Entwicklungszeit immer noch entscheiden...

    Blackn0va schrieb:

    Oder einfach die Daten in ungebundene Comboboxen und DataGridViews eintragen und die werte in einer TextDatei Speichern?
    Verstehe ich jetzt nicht. Man speichert keine Daten in eine TextBox - man braucht die TextBox, Datagridview, Combobox udgl. zum Anzeigen und Bearbeiten der Daten und diese Controls sind an die Daten eines Datenbuffers, wie das Dataset, gebunden...

    VB1963 schrieb:

    Blackn0va schrieb:

    Warum ist Embedded Database nicht gut?
    Wo wurde das behauptet?
    Ich hab sowas verlauten lassen:

    ErfinderDesRades schrieb:

    In welchem Tut habich eine embedded Database erklärt? (ich halte embedded Databases für meist ziemlichen Unfug)
    Kanns auch erklären:
    Grob verkürzt: Eine Datenbank ist zu nichts annerem nütze, als ein typisiertes Dataset zu befüllen.
    Nu kann man die Datenbank aber auch weglassen, und das Dataset viel einfacher direkt von Platte befüllen.
    Grad wo embedded Databases verwendet werden, ist das meistens möglich - und hier im konkreten Fall nehme ich das sehr sehr stark an.
    Ich glaube, der Threadersteller spricht von embedded database, meint aber das Dataset.
    Weiter glaube ich, dass EDR und vb1963 das schon längst verstanden haben, aber jetzt solange darauf herumreiten, bis der Threadersteller endlich die richtige Terminologie benutzt :D
    Okay, also um wieder zum Thema zu finden :

    Ich bin auf der Sche nach einer Praktikablen und erweiterbaren Methode daten zu Speichern. Da kommt mir als erstes eben eine Datenbank.. Da wir etwas ökonomisch denken sollten, habe ich schnell den gedanken einer Datenbank Instanz zu verwenden verworfen.

    Ich möchte also in einem Hauptformular einen neuen User anlegen und zeitgleich eben sagen, das der user x einen iMac von der Firma hat und ein iPhone 6s, die geräte sollen jederzeit und einfach erweiterbar sein falls ein iPhone 11 auf den Markt kommt.
    Sicher kann man eine Ungebundene combobox verwenden und eine Sammlung an daten hinterlegen, welche aber eben nicht mehr erweiterbar wären, oder?

    Wenn ich eine Datenbank verwende und eine Tabelle handy anlege, ist diese Tabelle recht einfach erweiterbar eben z.B für das iPhone 11..

    oder Speicher ich den inhalt der geräte in eine Textdatei und lese diese bei jedem Start ein und gebe Sie in der Combobox aus?

    Im Grunde möchte ich nur wissen, was eine geeignete und einfache Methode hierfür wäre.

    Ob es Datenbanken, Datasets oder Embedded Database sind oder eben einfache StreamWriter und reader.

    Blackn0va schrieb:

    Ob es Datenbanken, Datasets oder Embedded Database sind oder eben einfache StreamWriter und reader.

    Jetzt eier doch nicht ewig rum. Nimm das Typisierte Dataset und fertig. Damit geht alles, was du oben beschrieben hast.

    Das "einfachste" gibt es nicht. Geeignet ist relativ, gehen tut es mit allem was du Vorgeschlagen hast.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Du willst eine 1:n-Beziehung von der übergeordneten Tabelle Notebook zur Tabelle Person anlegen...
    Hat die Tabelle Person eine Spalte NotebookID mit dem gleichen Typ wie die ID-Spalte ID in der Tabelle Notebook?
    Weil die musst du bei Person (untergeordnete Tabelle) angeben.
    Und den Hacken bei geschachtelte Beziehung herausnehmen!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „VB1963“ ()