Visual Studio, Datenbank funktioniert nicht, hilfe?
Ich habe in Visual Studio 2022 ein Windows Forms .net Framework Programm mit einer Datenbank/Tabelle erstellt. Wenn ich das Programm jedoch veröffentliche und auf einem anderen PC teste, bekomme ich den Fehler, dass auf die Datenbank nicht zugegriffen werden kann. Die Fehlermeldungen/Fehlercodes helfen auch, sowie keine Tutorials. Alles auf Windows 10. Hat jemand Tipps?
1 Antwort
Infos? Du hast ungefähr nichts relevantes gesagt ;)
Fehlermeldung?
Datenbank-System?
Datenbank-Framework?
Wie veröffentlichst Du?
Was tust Du beim Veröffentlichen mit der DB?
Bis dahin:
- WinForms hat nichts mit Datenbanken zu tun
- Das ".NET Framework" ist veraltet und sollte nicht mehr genutzt werden. Achte darauf, dass es nur noch ".NET" (ohne "Framework") heißt und Version >6
- Der Fehler hilft definitiv, Du musst sie nur lesen, schauen, wo er auftrat und nachlesen, wann er auftritt
- Tutorials helfen so gut wie nie bei "richtigen" Problemen
Das ist einfach: YouTube-Tutorials
Irgendein Hans auf YouTube zeigt Klick für Klick peinlich genau, was man tun muss, um irgendetwas zu erreichen, das kriegt jeder hin.
Bis man dann von der exakten Vorgabe abweicht, dann fällt das Kartenhaus zusammen und am besten Fallen noch diverse Fehler auf, die der Hans gemacht hat - sind ja oft selber noch Anfänger.
PS: Sorry, an alle, die Hans heißen, nicht persönlich gemeint :D
Ist halt nur doof, wenn NIE gezeigt wird, wie es veröffentlicht wird, bzw die Programme immer nur innerhalb von VS ausgeführt werden. Totaler Anfänger bin ich eigentlich auch nicht mehr, ich bin es nur übersichtlicher gewohnt und nicht so von Microsoft. Das mit .Net Framework ist ein guter Tipp (wurde aber auch so in allen Tutorials verwendet, so viel also zur Hilfe). Ich werde es später nochmal versuchen und die restlichen Infos schicken. Aber erstmal danke für die schnelle Antwort
Ist halt nur doof, wenn NIE gezeigt wird, wie es veröffentlicht wird
Willkommen in der Welt der Video-Tutorials - die zeigen immer nur so viel, wie man schön in Videos zeigen kann, natürlich fehlt dir dann 99% von dem, was Du brauchst.
Microsoft erklärt das allerdings sehr wohl, doch dafür muss man die Doku auch lesen.
Such einfach nach "C# publish".
wurde aber auch so in allen Tutorials verwendet, so viel also zur Hilfe
Dann sind die veraltet.
Totaler Anfänger bin ich eigentlich auch nicht mehr, ich bin es nur übersichtlicher gewohnt und nicht so von Microsoft
Dann machst Du es falsch, in Visual Studio ist das mittlerweile sehr einfach.
Aber ich kann dir nicht sagen, was Du falsch machst, wenn ich nicht weiß, wie Du es machst.
Ich werde es später nochmal versuchen und die restlichen Infos schicken
Ich rate mal ins Blaue hinein:
- DB wird nicht (korrekt) mit genommen
- Pfade stimmen nicht
- Berechtigungen im Ordner passen nicht
- DB-System ist nicht installiert
Microsoft erklärt das allerdings sehr wohl, doch dafür muss man die Doku auch lesen.
Hab ich
Dann sind die veraltet
Sind aber teilweise aus diesem Jahr gewesen.
Zum Erstellen des Programms und der Datenbank hab ich mich größtenteils an diese Videos gehalten: https://youtube.com/playlist?list=PLRC56soDUWcmEGdLkArCXXgMev5V81dch
Um das ganze Programm zu veröffentlichen hab ich oben in der Leiste statt „Debug“ „Release“ ausgewählt und dann über Projektmappenexplorer „veröffentlichen“ ausgewählt. Halt genauso wie es auch der MS Seite beschrieben wurde.
Das ist die Fehlermeldung, die ich beim Start des Programms erhalte:
Unbehandelte Ausnahme in der Anwendung. Klicken Sie auf "Weiter“, um den Fehler zu ignorieren und die Anwendung fortzusetzen. Wenn Sie
auf "Beenden" klicken, wird die Anwendung sofort beendet.
Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer
Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf
ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der instanzname
richtig ist und ob SQL Server Remoteverbindungen zulasst. (provider: SQL
Network Interfaces, error: 52 - Es konnte keine Installation der Local
Database Runtime gefunden werden. Überprüfen Sie, ob SQL Server
Express richtig installiert und die Funktion Local Database Runtime
Das ist alles, was mir angezeigt wird. SQL Express ist installiert, hat aber auch alles nichts gebracht.
Gibt es sonst nicht eine Alternative die Daten abzuspeichern? Meine Idee wäre sonst ein DataGridView in dem die Dinge eingetragen werden und dann in einer extra Datei gespeichert werden. Hab dazu aber auch nichts richtiges gefunden.
Sind aber teilweise aus diesem Jahr gewesen.
Das heißt leider nichts.
Es gibt leider viel zu viele Leute, die nicht aktiv verfolgen, was sich auf dem Gebiet tut, in dem sie arbeiten. So arbeiten aus irgendeinem Grund immer noch viele Leute mit WinForms, obwohl das wie eine künstlich am Leben gehaltene Leiche ist ;)
Wenn Du unbedingt Video-Tutorials gucken musst, dann guck die vom CSharpFritz an, der ist von Microsoft direkt und Microsoft wird das sicher genau überwachen und ggf. aktualisieren, wenn nötig.
Alles andere, jedes einzige Tutorial, das ich mir testweise angeschaut habe, war einfach nicht gut und das ist doof, denn die Anfänger, die sich das anschauen, merken das nicht.
Zum Erstellen des Programms und der Datenbank hab ich mich größtenteils an diese Videos gehalten: https://youtube.com/playlist?list=PLRC56soDUWcmEGdLkArCXXgMev5V81dch
2017 ist älter als Du glaubst, die große Neu-Orientierung von .NET begannt 2016 und war 2017 noch lange nicht spruchreif. Seit dem hat sich aber sehr viel getan, so ist die Neu-Orientierung mehr als nur spruchreif, es hat das alte Framework in beinahe allen Punkten weit zurück gelassen.
Aber klar, ist nicht seine Schuld, dass sich seit dem so viel geändert hat.
Es ist aber sehr wohl seine Schuld, dass er mitten drin beginnt und nicht am Anfang, damit die Zuschauer auch wirklich begreifen, was sie tun und nicht nur abtippen, dann könnten sie auch selber das gleiche Projekt mit neuer Technologie aufbauen.
Das ist die Fehlermeldung, die ich beim Start des Programms erhalte
Der Fehler sieht aber aus, als läge er ganz woanders und nicht beim publish.
Er findet die DB nicht, das ist ein SQL Server Express und der ist installiert? Dann steht irgendwas im ConnectionString (sollte *NIEMALS* im Code stehen) etwas, was auf dem Ziel-PC anders ist, z.B. der Instanz-Name der SQL Server Installation.
Das steht da aber auch:
Es konnte keine Installation der Local Database Runtime gefunden werden.
Alles, was dazu führt, dass er den SQL Server nicht findet, kann hier der Grund sein, angefangen mit anderem Instanz-Namen bis hin zu gesperrten Ports.
Gibt es sonst nicht eine Alternative die Daten abzuspeichern?
Es gibt zig Möglichkeiten, wenn es eine stumpfe Datei sein soll, dann XML, JSON oder CSV oder irgendwas anderes. Ich würde CSV oder JSON nehmen, Letzteres für komplexere Daten. Ein eigenes DB-System nachzubauen wäre aber eine dumme Idee.
Oder Du nutzt den seit langem von Microsoft empfohlenen SQL Server LocalDB.
Oder SQLite, das gerade im Mobile-Bereich beliebt ist, weil es gar keine Abhängigkeiten hat, dafür hat es aber ein paar Eigenarten.
Oder die DB liegt auf einem anderen Server, aber dann wird es noch schwieriger.
Hab dazu aber auch nichts richtiges gefunden.
Dann solltest Du lernen, richtig zu recherchieren ;)
Fragen wie diese gibt's ziemlich häufig und die Antworten sind immer ziemlich gleich.
ich wunder mich immer das leute soweit kommen und dann hier eine frage stellen wie ein anfänger der das erste mal code gesehen hat ;)