Veröffentlichung - DataSet ist leer!

  • VB.NET

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von StormySunshine.

    Veröffentlichung - DataSet ist leer!

    Guten Abend :)

    Ich möchte gerne mein Projekt (lokale Datenbank "sdf") veröffentlichen (Erstellen -> Projekt veröffentlichen). Nachdem ich ein Update durchgeführt habe (zB. neuen Button eingefügt) und das Projekt im selben Ordner erneut veröffentliche, sind alle Daten gelöscht.

    Wahrscheinlich muss ich die Datei, in der die Daten gespeichert sind, kopieren und dem neuen zuordnen :?:


    Wie behebe ich das Problem? :S
    Gehören die Dateien dieser Daten zum Projekt?
    Nein? Füge sie hinzu.
    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!
    Ich habe ein Projekt erstellt, indem auch das DataSet drin ist. :)
    Wenn ich es nun veröffentliche und auf dem PC installiere, ist es leer. Logisch, denn die beim Debuggen erstellten Daten gehören auch nicht rein. ;)

    Nun, wenn ich aber das Projekt nochmal öffne, um zB. das Layout zu ändern und es dann wieder veröffentliche, wird die .sdf-Datei überschrieben und nach dem Installieren ist wieder alles leer. ;(


    Ich denke eher, dass ich ein Fehler beim Update mache. Muss ich die Datei dann wirklich neu installieren oder gibt es eine andere Möglichkeit?
    Was gehört denn nun alles zum Update?
    Doch nur die EXE. Oder?
    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!
    Ich gehe einfach unter "Projekt veröffentlichen". ;)
    Da wird natürlich wieder alles in den Ordner gepackt. :S Es soll lediglich das Layout geändert werden, die Daten beibehalten bleiben.


    Oder gibt es eine andere Möglichkeit, ein Update durchzuführen?
    Erstell Dir ein Setup-Projekt (Projekt - neu - andere Projekttypen), da kannste explizit festlegen, was dazugehören soll.
    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!
    Nur die Exe, ggf. DLLs. Musste dann halt ausprobieren, bis Du alle Dateien zusammen hast.
    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!
    Ich habe mir nun ein Projekt (P-Box - Download als ZIP) geschrieben. Dabei verwende ich 2 Datasets. Eines für die Benutzeranmeldung und eines für Webseiteninformationen ect. :)

    Nach dem Veröffentlichen (Projekt -> Projekt veröffentlichen) sind beide Datasets leer. Ich habe es darauf mit einem Setup probiert, wie Du es empfohlen hast. In dem Setup habe ich folgende Daten gepackt.


    Als Veröffentlichungspfad für das Projekt habe ich einen USB-Stick genommen. Von dem aus habe ich auch die Anwendungs (.exe) gestartet und auf den PC installiert. Ich gehe davon aus, dass das Setup ebenfalls auf den Stick installiert werden muss?! :S

    Genügt es, wenn ich das Installieren über den Projektmappenexplorer durchführe?


    Kann ich bei dem Setup den Pfad so einstellen, dass es direkt mit auf dem Stick installiert wird? Leider waren die Datasets nach dem Installieren des Projekts und des Setups wieder leer... ;(
    naja - ein DAtaset ist im NaTUzustand immer leer.
    Man musses halt befüllen.
    also entweder befüllst du es nicht, oder du befüllst es falsch, oder du befüllst es aus der falschen Datenbank - wären so meine ersten Vermutungen.
    meine Lieblings-Vermutung: Fehlerhafte Befüllung innerhalb eines unsachgemäßen TryCatches
    ähm - wenn das Dataset leer ist, dann ist es nicht befüllt.

    Dann ist es vlt. beim Debuggen befüllt, aber im verteilten Zustand ist es nicht befüllt.

    überprüfe also nochmal ganz genau jede einzelne der 4 von mir angebrachten Möglichkeiten. Fang am besten mit der Datenbank an - das üprüft sich noch am leichtesten, ob die verteilte DB wirklich auch die Datensätze enthält (Dateigröße vergleichen)

    Wie lautet der Connectionstring?

    ErfinderDesRades schrieb:

    und was steht drin, im Connectionstring?
    Da ich nicht genau weiß, wo ich die einzelnen Informationen finde, füge ich zumindest mal die app.config ein. :)

    PHP-Quellcode

    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <configuration>
    3. <configSections>
    4. <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
    5. <section name="P_BOX.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    6. </sectionGroup>
    7. </configSections>
    8. <connectionStrings>
    9. <add name="P_BOX.My.MySettings.pBox_oUserConnectionString" connectionString="Data Source=|DataDirectory|\pBox_oUser.sdf"
    10. providerName="Microsoft.SqlServerCe.Client.3.5" />
    11. <add name="P_BOX.My.MySettings.fkey_KeysConnectionString" connectionString="Data Source=|DataDirectory|\fkey_Keys.sdf"
    12. providerName="Microsoft.SqlServerCe.Client.3.5" />
    13. </connectionStrings>
    14. <startup>
    15. <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
    16. </startup>
    17. <userSettings>
    18. <P_BOX.My.MySettings>
    19. <setting name="exitUser" serializeAs="String">
    20. <value>False</value>
    21. </setting>
    22. </P_BOX.My.MySettings>
    23. </userSettings>
    24. </configuration>
    naja, so gehts auch.
    Wobei ich ja glaube, du hättest nur in die Settings gugge zu brauchen. Also wenndedie Settings noch nicht kennst, gugge Settings richtig verwenden + binden
    (wobei das sehr drüber hinausgeht, aber wie man Settings anguckt, wird dort auch klar, insbes. durch SpaceyXs Video)

    Also du hast 2 Connectionstrings, der eine lautet "Data Source=|DataDirectory|\pBox_oUser.sdf"
    und der annere: "Data Source=|DataDirectory|\fkey_Keys.sdf"

    Dassis schoma Mist, denn deine Anwendung käme mit Sicherheit auch mit nur einer Datenbank, und nur einem ConnectionString aus.

    Also ich vermute, du hast in deinem ProjektOrdner eine leere "pBox_oUser.sdf", und inner halb des ProjektOrdners, in "\Bin\Debug" hast du eine weitere "pBox_oUser.sdf", und in letzterer sind deine Daten.

    Beim Verteilen nu wird vermutlich die erste "pBox_oUser.sdf" verteilt, welche leider leer ist.
    Ja, in MySettings stand nicht so viel drin, daher habe ich die app.config genommen. :D

    Du hast Recht. Das Dataset könnte ich auf eines reduzieren. Ich persönlich fand es aber mit 2 besser. Letzteres hast Du wieder Recht, die Datasets befinden sich in C:\Users\Mein PC\Documents\Visual Studio 2010\Projects\P-BOX\P-BOX\bin\Debug und C:\Users\Mein PC\Documents\Visual Studio 2010\Projects\P-BOX\P-BOX. Was ich komisch finde, unter C:\Users\Mein PC\Documents sind sie auch zu finden. ?(


    Wenn ich richtig verstanden habe, kopiere ich es einfach aus \bin\Debug in \Projects\P-BOX\P-BOX ?
    Sorry, ich meinte auch die .sdf -Dateien. ;)
    Wie kann ich denn feststellen, ob die .sdf -Datei unter Projects\P-BOX\P-BOX leer ist? Fraglich ist für mich auch, weshalb es diese Daten 3 Mal gibt...

    - Projects\P-BOX\P-BOX\bin\Debug
    -
    C:\Users\Mein PC\Documents
    -
    Projects\P-BOX\P-BOX