Wo die Datenbank speicher?

  • VB.NET

Es gibt 27 Antworten in diesem Thema. Der letzte Beitrag () ist von powerprogger.

    Wo die Datenbank speicher?

    Hallo,

    Ich arbeite gerade an einem Programm wo ich eine Datenbank brauche...
    Die Datenbank habe ich erstellt und mit "Vorhandenes Element hinzufügen" hinzugefügt...
    (Also bisher nur getestet und nicht beim eigentlichen Programm gemacht, aber wird dort dann ja kein Problem mehr sein)

    Die Daten anzeigen, ändern, abspeichern... geht einigermassen... (arbeite das erste Mal mit einer Datenbank und in Visual Basic bin ich auch Anfänger)

    Wenn ich dann das Programm auf einem anderen Computer INSTALLIEREN will, wo muss ich dann die Datenbank abspeichern?
    Oder ist die irgendwie im Programm (als Resource oder so) gespeichert?

    Gruss sandiro
    Da würde ich dir folgenden Pfad empehlen:

    VB.NET-Quellcode

    1. Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\" & Application.ProductName

    das ist unter Vista:
    "C:\Users\[BENUTZER]\AppData\Roaming\DEINE ANWENDUNG"
    Dabei ist "C:\Users\[BENUTZER]\AppData\Roaming" der Pfad für Anwendungsdaten.
    "Application.ProductName" ist ein Ordner mit dem Namen deiner Anwendung.
    Der Ordner ist aber Unsichtbar.
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Danke erst mal,

    wie gesagt ich bin Anfänger, und komme daher nicht so ganz draus...

    Also wenn ich das Prog zum Download anbieten werde, dann werde ich die Datenbank nicht "mitliefern", sondern dann einfach herunterladen...

    Dann kann ich dann also Den Speicherort ApplicationData nehmen... also irgendwie so;

    Dim Speicherort = Enviroment....
    My.Computer.Network.DownloadFile("Pfad der gesp. Datei", Speicherort)

    Und wie füge ich den Speicherort im Programm hinzu, also dass das Programm weiss, wo die Datenbank gespeichert ist?

    Gruss Sandiro
    Wird die Datenbank immer in den gleichen Ordner gespeichert oder kann der Benutzer wählen wohin? Und ist es immer der gleiche Datenbankname oder ändert der sich auch?
    Wenn es immer der gleich ist, dann kannst du dem Programm ja sagen im Ordner XYZ ist Datenbank ABC. Und in diesen dann die Datenbank speichern.
    Er meinte wohl DB für Datenbank.
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Also der Name der Datenbank wird immer der gleiche sein,
    also der Benutzer kann den Speicherort wählen,

    dort wird der Ordner "iStar" erstellt und die Datenbank wird dann dort gespeichert... (Ich muss noch andere Dateien und Ordner unter iStar speichern),
    der Speicherort bleibt dann immer der gleiche...
    Dann musst du den Pfad eben irgendwo speichern. INI, XML, Settings....
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Und genau das sollst du speichern. Den Pfad den der User beim Download angibt.
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Also der User klickt auf einen Button und kann dann in einem Fenster den Speicherort wählen,
    der Speicherort wird in einer Textbox angezeigt und auch dort gespeichert, also der Text in der Textbox ist nachher immer der gleiche (kann vom User nicht mehr geändert werden),

    aber wie (und wo) schreibe ich, dass dort die Datenbank gespeichert ist? Weil das Programm merkt sich nur den Text in der Textbox und weiss ja nicht, dass dort meine Datenbank gespeichert ist.
    Im Moment ist die Datenbank ja irgendwie im Projekt-Ordner gespeichert und das merkt sich das Programm bisher, aber wenn ich es dann installiere, weiss es das ja nicht mehr.
    Du willst mich aber jetzt nicht verarschen oder?
    Das ist doch jetzt nicht so schwer.
    Wie du schreibst, zeigst du den Pfad zum Speichern in einer Textbox an. Diesen einfach z.B. in den Settings speichern.
    Und wenn du auf die Datenbank zugreifen möchtest, greifst du auf den in den Settings gespeicherten Pfad zu, hängst noch den Namen der Datenbank dran und gut ist.
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Nein, ich möchte dich nicht verarschen,
    es geht ja nicht um das Speichern, sondern um's aufrufen,

    "Und wenn du auf die Datenbank zugreifen möchtest, greifst du auf den in den Settings gespeicherten Pfad zu"

    Ich weiss nicht, wie cih zugreifen kann,
    also wenn ich die Datenbank hinzugefügt habe, erscheint sie auf der linken Seite, und wenn ich sie auf die Form ziehe, erscheint die Textbox mit den Daten und man kann bereits Daten hinzufügen, löschen und bearbeiten,
    aber diese Felder müssen den Speicherort kennen und das ist mein Problem

    Edit: Ich habe nochmals ein Beispielprojekt gemacht und die Datenbank hinzugefügt und bei den Einstellungen (also My.Settings) war der Speicherort der Datenbank (wenn ich mich nicht irre)
    Also wenn ich diese Einstellung dann ändere, dann greift das Programm automatisch auf die richtige Datenbank zu?

    Sorry für meine vielen (nervigen) Fragen
    Darf ich dir nen kleinen Tipp geben?

    Formulier doch mal das was du genau benötigst noch einmal. Ich versteh dich nämlich auch net so ganz und ich hab den ganzen Tag mit schlecht deutschsprechenden zu tun, und selbst die werden von mir verstanden.
    Also ich glaube mein Problem ist gelöst, aber trotzdem nochmals:

    Ich habe eine Datenbank erstellt, und hinzugefügt (hat alles funktioniert).
    Wenn ich die Datenbank auf die Form ziehe, werden Textboxen auf der Form angezeigt, mit den Daten aus der Datenbank,
    auch die Leiste um Daten zu löschen,... wird angezeigt.
    Die Datenbank wird ja auch gleich im Projektorder gespeichert, also dort, wo mein Projekt bis jetzt gespeichert ist.

    Wenn ich jetzt ein Setup erstelle (InnoSetup) und dann das Prog bei mir oder auf einem anderen Computer installieren will, muss ja die Datenbank auch vorhanden sein.
    Wenn man jetzt die Datenbank dann einfach auf dem Desktop oder so speichern würde, würde das Prog ja nicht funktionieren, weil mein Programm weiss ja nicht einfach so, dass es sich um diese Datenbank handelt.

    Also muss ich meinem Programm "sagen", wo die Datenbank gespeichert ist.
    Aber ich weiss (wusste) nicht wie ich das machen muss.

    Unter den Einstellungen (My.Settings) habe ich gesehen, dass Visual Basic eine neue Einstellung speichert, mit dem Pfad zur Datenbank.
    Wenn ich also z.B. die Datenbank auf dem Desktop speichern möchte (auf einem anderen Computer, wo ich mein Prog istalliere),
    dann muss ich einfach den richtigen Pfad in die Einstellungen speichern und fertig. Dann sollte das Prog auf die richtige Datenbank zugreifen
    Oder irre ich mich da?

    Gruss Sandiro
    Mach es einfacher. Du installierst ja das Programm (bspw. unter C:\Programme\Dein_Programm) und da machste einfach den Pfad zur DB direkt in den Quellcode deiner Anwendung und installierst die fertige DB mittels deines Setups in den Programmpfad (bspw. C:\Programme\Dein_Programm\Deine_DB.MDB).
    Frage ist, klappt das auch mit eingeschränkten Rechten?
    Und er will den User ja angeben lassen, wo die DB gespeichert werden soll.


    Ich seh es schon, das dauert noch ein bisschen bis ein Ergebnis rauskommt ^^
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Also mit My.Settings geht es schon oder?

    Wenn ich die DB aber unter C:\ (oder so) speichere, kann das Programm dann nicht mehr auf die Datenbank zugreifen,
    weil es möglicherweise keine Rechte dazu hat,

    weil bei mir können die Programme auch nicht einfach unter C:\ schreiben und wenn ich ein Prog installiere, muss ich immer zuerst bestätigen (UAC),
    daher ist es doch sinnvoller, die Datenbank bei den Dokumenten oder so zu speichern,
    ich speichere auch noch andere Dateien dort...

    Edit: Hab den letzten Beitrag verpasst :)
    Und kaum jemand, startet das Programm immer mit Admin-Rechten