DataSet oder Access-Datenbank

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Noyne.

    DataSet oder Access-Datenbank

    Hallöchen liebe VB-Gemeinde,

    ich hab' ein Problem, das ich schon eine Zeit lang vor mich hinschieb.

    Ich habe in meinem Programm, eine Access-DB mit 20 Tabellen, in denen zum Teil je 3000 (oder mehr) Datensätze stehen.
    Seit ich die zweite Version des Programms programmiere, geht mir die Idee durch den Kopf, auf DataSets umzusteigen und ohne Access-DB zu arbeiten.

    Meine Fragen sind nun folgende:

    1. Kann man die Tabellenstruktur von Access für die DataSets übernehmen, also quasi die Tabellen 1 zu 1 kopieren?
    2. Wie sieht's dann mit einer Datensicherung aus? Kann ich meinetwegen die DataSets jeden Abend kopieren oder auch als Access-DB speichern oder irgendwie sowas? Im Moment sieht die "Datensicherung" so aus, dass einfach die Access-DB kopiert wird. Puff, fertig. Das ist zwar praktisch, aber auch manipulieranfällig Oo
    3. Kann man das Ganze dann auch günstig weiter verwenden, wenn ich das Programm irgendwann für mehrere User nutzbar machen will?

    Ich bedank' mich schon mal für eure Vorschläge ;)

    GlG Noyne
    Your computer is running... You better go chase it! :P :D
    Also ich kann es dir natürlich nicht 100% sagen. Aber von der Performance her würd ich bei dieser Datenmenge nicht auf DataSet Only umsteigen.

    Zur Datensicherung wirst du es bei DataSet's genauso machen müssen indem du die XML Dateien als Backup sicherst. Was natürlich auch anfällig ist da man eine XML Datei ohne Probleme bearbeiten kann.

    Du könntest dir eine SQL basierte Lösung anschauen. Eventuell wirst du hier beim einem Multiuser Programm am besten fahren.
    Seit ich die zweite Version des Programms programmiere, geht mir die Idee durch den Kopf, auf DataSets umzusteigen und ohne Access-DB zu arbeiten.

    Hast du denn noch kein typ. Dataset, wo deine Tabellen abgebildet sind, programmiert?
    zu Frage 1: Menü/Daten/neue Datenquelle hinzufügen... dabei einen Connectionstring bilden und ein typ. Dataset generieren usw...
    zu Frage 2: Ich könnte mir vorstellen, dass du ohne .mdb und nur mit .XML auskommen könntest (kann man leicht probieren, wenn du ein typ. Dataset schon inne hast)

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

    VB1963 schrieb:

    ein typ. Dataset generieren


    Ich hab das gerade mal mit einem jungfräulichen Programm getestet ...

    Jetzt ist aber die Frage: Wenn ich Änderungen in dem DataSet mach', hat meine Access-DB auch die Änderungen drinne?

    Ich hab' einfach irgendwie noch so einige Verständnisprobleme was die DataSet-Geschichte angeht...
    Im Moment lad ich mir die Daten aus der DB in Datasets, die ich zur Laufzeit erstell' und arbeite mit denen... Zum Teil... Updates und so weiter mach ich immer noch direkt in die DB 8|
    Es ist im Moment noch ein ziemliches Wirrwarr aus DataSet und DB ?( und so ungefähr sieht's bei mir im Kopp auch aus :S
    Your computer is running... You better go chase it! :P :D

    VB1963 schrieb:

    zu Frage 2:
    @Noyne Da hättest Du aber mehrere XML-Dateien, was ansonsten in eine einzige MDB geht.
    Der (Festplatten-)Ordnung halber würde ich die 1-Daten-Datei-Variante präferieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Rod - Man kann aber auch das ganze Dataset in eine einzige .XML transferieren - nicht nur einzeln die Tabellen...

    Noyne schrieb:

    Jetzt ist aber die Frage: Wenn ich Änderungen in dem DataSet mach', hat meine Access-DB auch die Änderungen drinne?
    natürlich nicht, da muss man extra nachstellen...
    daher zuerst das Datenmodell (Dataset) bis es passt ohne DB fertig erstellen und nachher die DB angehen.
    D.h. mit .XML vorerst arbeiten und dann erst auf eine DB umsteigen.
    Wie @ErfinderDesRades immer schreibt...
    Joah, so viele Änderungen kommen nicht mehr in die DB... Aber ich glaub', ich hab' den Hinweis verstanden... Hm, da guck' ich mal ...

    VB1963 schrieb:

    man extra nachstellen...


    Also so wie ich's jetzt schu mach' mit dem in die Access-DB reinschreiben, DataSet neu erstellen und wieder anzeigen lassen, oder wie?!

    Ich werd' da wohl noch einiges probieren müssen :/
    Your computer is running... You better go chase it! :P :D

    Noyne schrieb:

    einiges probieren müssen
    Mach erst mal einen ordentlichen Plan, dann hast Du hinterher viel weniger Arbeit.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Noyne schrieb:

    Also so wie ich's jetzt schu mach' mit dem in die Access-DB reinschreiben, DataSet neu erstellen und wieder anzeigen lassen, oder wie?!
    Lasse einfach die Manipulationen in der DB hinten anstehen.
    Erstelle ein funktionierendes Dataset (Datenmodel) mit dem du zufrieden bist und halte deine Daten erst einmal in einer .XML-Datei.
    Dabei kannst du dann schon einmal feststellen, ob du überhaupt eine .mdb brauchst. Das hatte ich oben zu Frage 2 gemeint.
    Wenn eine .mdb wirklich notwendig wird, dann kannst du immer noch auf diese umsteigen. ( Stichwort: DB-Generator von @ErfinderDesRades )

    RodFromGermany schrieb:

    einen ordentlichen Plan

    Wenn die, für die ich die Anwendung schreib' nur auch nen ordentlichen Plan hätten... *seufz*

    Aber ich hab grad eine gute Idee gehabt, danke dir ;)

    VB1963 schrieb:

    kannst du immer noch auf diese umsteigen.

    Wohl wahr!
    Das ist auch 'ne gute Idee!! Danke dir auch ;)
    Your computer is running... You better go chase it! :P :D

    Noyne schrieb:

    *seufz*
    Das ist ein ganz wesentlicher Punkt.
    Üblicherweise werden die meisten Fehler bei der Spezifikation gemacht.
    Also:
    Lieber 3 Mal nachfragen: "Wie hätten Sie es denn gern" als eine Zeile Code schreiben.
    Klingt blöd, ist aber so.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    "Wie hätten Sie es denn gern"

    Gut, wenn ich das frage, krieg ich von 3 unterschiedlichen Leuten drei unterschiedliche Antworten und wenn ich Person 2 frag, was sie von der Idee von Person 1 hält und ob das nicht auch eine Option für sie wäre, kommt dann: "Ne, also das brauchen wir gar nicht!"
    Alle vernünftig unter einen Hut zu bringen, ist schwierig.
    Aber du hast schon recht! Ich mach' mir erstmal einen Plan, der auf dem aufbaut, was mein "Hauptabnehmer" will!! Den Rest kann ich später immer noch machen!

    Ich mach' mir da mal ein Konzept dazu! Das war wirklich eine sehr gute Idee.
    Mir schwirren einfach zu viele Anfragen von zu vielen Leuten im Kopf rum, die ich an sich alle nicht enttäuschen will!! Sortieren und Prioritäten setzen!
    Das mach' ich als nächstes... (Hätt' ich zwar gleich am Anfang machen sollen, aber na ja... Wenn alle zeitgleich kommen, verliert man das Offensichtliche aus dem Auge...)
    Your computer is running... You better go chase it! :P :D

    Noyne schrieb:

    Alle vernünftig unter einen Hut zu bringen, ist schwierig.
    Erbitte eine gemeinsame Meinung.
    Oder
    Mach einen Plan, der von allen abgesegnet werden muss.
    Zwinge sie zu einer gemeinsamen Meinung. Am besten mit allen Unterschriften.
    Ansonsten rennst Du Dir einen Wolf.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Gut, da das ein firmainternes Projekt ist, geht das an sich schon. Allerdings hab ich erstmal die Anweisung bzw. den Befehl von meinen "Hauptabnehmern" gekriegt, dass erstmal nur das zählt, was sie gesagt haben und was sie wollen, weil das auch ehrlich gestanden am wichtigsten ist!
    Wenn das dann soweit läuft, geben wir die Anwendung zu den anderen Parteien und die sollen rückmelden, ob ihnen die Software soweit gefällt oder was geändert werden sollte (also gravierend geändert ... Bei sowas wie "Or, ich hätt gern die Schrift da rosa." muss ich leider sagen: "Nö, die ist halt schwarz." ... da es wirklich an sich firmaintern ist, geht das dann auch... ).

    Jetzt, wo ich auch wieder ein bisschen klarer im Kopf bin (das Runterschreiben und mit "Fremden" diskutieren hilft echt! Der Hammer!), wird das auch eher was werden. Wenn du nur mit Leuten reden kannst, die in der Materie drinne stecken und selber immer wieder kommen mit so Sätzen wie: "Wir müssen da mal noch was ändern...", da verlierst du einfach irgendwann den Faden...

    Aber nu' hab ich ne ja wieder ;)
    Your computer is running... You better go chase it! :P :D

    Noyne schrieb:

    Wenn das dann soweit läuft, geben wir die Anwendung zu den anderen Parteien und die sollen rückmelden
    Da ist es bereits zu spät, weil, wenn der Plan ordentlich gemacht wird, Doppelarbeit gespart wird.
    Lastenheft: Alles, was die wollen.
    Pflichtenheft: Alles, was gemacht wird.
    Wenn die danach noch was wollen: In der nächsten Version.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Noyne schrieb:

    ne Vorlage oder sowas
    Das sollte Dir eigentlich Dein Chef geben.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!