Dateipfad ermitteln

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von weedl.

    Dateipfad ermitteln

    Hi leute,

    eine kurze frage. Gibt es eine möglichkeit den Dateipfad einer DB ermitteln zu lassen?

    Der hintergrund ist folgender. Ich habe ein tool was mit eine lokalen DB arbeitet. Wenn ich jetzt das Tool auf einem anderen rechner installiere, Ist natürlich der Pfad der Db nicht mehr der selbe.

    z.B.

    VB.NET-Quellcode

    1. Dim conn As New SqlCeConnection("Data Source=D:\VB Projekte\Kostenübersicht\Kostenübersicht\Database1.sdf")


    Wie kann ich diesen variabel machen bzw. das Problem lösen?
    Knall die DB in das Verzeichnis wo deine .exe liegt. Dann kannst mit diesem Code immer darauf zugreifen.

    VB.NET-Quellcode

    1. Dim conn As New SqlCeConnection("Data Source=" & Application.StartupPath & "\Database1.sdf")


    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Beim Programmieren ansich musst die die DB dann in das Verzeichnis "...\bin\Debug\" kopieren.
    Dann kannst wie oben beschrieben die DB aufrufen.

    Beim fertigen Programm einfach in den Ordner wo die .exe liegt.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Also wenn ich mit DB arbeite, dann wird die DB bei mir automatisch beim Debugen oder Release erstellen in den Ordner eingefügt. Also musst du nur den Inhalt vom release Ordner kopieren und fertig ist. Andernfalls könntest du beim Installieren sagen, das alles in den gleichen Pfad installiert wird, was es eigentlich sowieso immer tut.

    --
    Ansonsten erstell beim Aufruf des Programms automatisch den Ordner "C:/DB/" wenn er nicht vorhanden ist und kopiere dort die DB beim Prog-Start rein. Klappt eig. auch ganz gut.

    Gruß
    @phinix: Das äußerst blöde da mir das nach Vista/Win7 aussieht, was macht ein XP User?? Der hat diesen Ordner nicht. Zumal finde ich persönlich es mist wenn Programme ihre Daten auf dem PC verteilen. Daten die zum Programm gehören, gehören in den Programmordner.

    @weedl: Die Info bekommst du wie oben genannt über Application.StartupPath das ist der aktuelle Pfad deines Programmes, egal von wo es ausgeführt wird.
    Beim Entwickeln musst du die DB manuell in den Ordner \bin\Debug kopieren damit du drauf zugreifen kannst, wenn du dein Programm dann veröffentlichst kopierst du die DB noch in den Ordner \bin\Release den Inhalt dieses Ordners kannst du dann Verteilen an wen du möchtest. Für gewöhnlich befinden sich darin dann die Exe Datei und eben deine DB-Datei.
    Irgendwie funktioniert es immer noch nicht. Also ich habe die Datenbank auf die VB zugreift in der obersten ebene im projekteordner liegen (wo auch bin, myprojekt, publish... liegt) und nochmal in bin/debug und bin/release.

    der pfad im code ist folgender:

    VB.NET-Quellcode

    1. conn = New SqlCeConnection("Data Source=" & Application.StartupPath & "\Database1.sdf")


    Wenn ich das Projekt jetzt veröffentliche. Welche exe soll ich dann ausführen, dass sich das tool installiert und auf die db zugreifen kann??

    Wenn ich die tool.application im publish ordner ausführe, läuft der Pfad der DB immer in C:Dokumente und Einstellungen\Lokale Einstellungen\Apps...

    Was soll das?

    Bin echt am verzweifeln. So kurz vorm Ziel noch solche probs :(

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

    Wenn du deine Anwendung veröffentlichst ist diese im bin/Release als .exe vorhanden.
    Wenn die DB nicht irgendwie mit deinem Programm verknüpft wurde (reiner Code zählt nicht dazu) musst du die DB händisch zum Release Ordner hinzufügen.

    Wenn du nicht irgendwelche externen dlls mitliefern musst brauchst du nur die .exe und deine DB auf einem anderen Rechner im selben Verzeichnis ablegen und sollte funzen.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten