Entwickler-Ecke

WinForms - WinForms Applikation mit SQL DB auf anderen Rechner


nav93 - Sa 24.02.18 01:37
Titel: WinForms Applikation mit SQL DB auf anderen Rechner
Hallo zusammen,

ich habe eine frage bezüglich meiner WinForm Applikation. Ich nutze diese gerade mit einer SQL DB auf meinem Rechner. Doch wenn ich die Anwendung auf einen anderen Rechner starten möchte kann ich weder etwas speichern, löschen oder ändern, da der Pfad nicht stimmt. Ich habe eine DB über Visual Studio eingefügt, eine Dienstbasierte.

Könntet Ihr mir ein Tipp geben, wie es möglich wäre, das Programm auf mehreren Rechnern zum laufen zu bekommen, die auf eine DB zugreifen? Irgendetwas mit SQL Server?

Danke schon mal :)


Delete - Sa 24.02.18 02:14

- Nachträglich durch die Entwickler-Ecke gelöscht -


Th69 - Sa 24.02.18 09:22

Welche Datenbank nutzt du denn und wie sieht der zugehörige ConnectionString aus?


nav93 - Sa 24.02.18 15:50

Hallo,

also der String mit @datasource etc .. der stimmt dann ja nicht mehr wenn ich auf ein anderen PC das Programm nutzen möchte da der Pfad bzw der DB String nicht mehr geht . Ich hab die Datenbank eingefügt in Visual Studio . Dienstbasierte Datenbank stand da. Die sql db funktioniert ja, aber nur auf mein PC. Möchte ich das Programm bei einem Freund starten wird mir die Data source als Fehler angezeigt wird . Meine Frage war ob es sowas gibt, das man die SQL DB für mehrere Nutzer freigeben kann. Sonst muss man ja immer den datasource String ändern .


Th69 - Sa 24.02.18 15:56

Hast du in deinem Debug (bzw. Release) Ordner eine passende ".config"-Datei? Dort drin sollte der ConnectionString drin stehen, so daß du auf dem anderen Rechner einfach diese Datei editieren kannst (ist eine einfache XML-Datei).

Ist denn auf dem anderen Rechner auch der SQL-Server installiert?


nav93 - Sa 24.02.18 15:58

Ja genau man kann den Link ja anpassen . Aber gibt es keine Möglichkeit das die DB quasi online liegt und man nicht mehr den Link anpassen muss ? Das ist total nervig . Ja auf dem anderen PC ist auch sql installiert. Was ist eig wenn auf dem anderen pc kein kein swl installiert wäre ? Ich dachte es gibt die Möglichkeit den Link einmal festzulegen .


Th69 - Sa 24.02.18 16:04

Soll denn auf genau eine Datenbank von beiden Rechner zugegriffen werden oder soll jeder Rechner seine eigene lokale bekommen?

Bei ersterem würdest du einen Rechner als Server für die SQL-Datenbank verwenden und dann von deinem Programm aus (per IP-Adresse) darauf zugreifen.


nav93 - Sa 24.02.18 16:09

Genau :) also EINE DB und 3 anwender für das Programm :) muss ich dann nicht ständig online sein , damit das so funktioniert ?


Th69 - Sa 24.02.18 16:20

Sind die Rechner denn in einem (lokalen) Netzwerk miteinander verbunden? Dann ist dein Szenario so möglich.


nav93 - Sa 24.02.18 16:24

Die Rechner sind leider nicht im gleichen Netzwerk . Gibt es dafür eine praktische Lösung ? Oder eben nur das ändern des Strings ?


Th69 - Sa 24.02.18 19:38

Also wenn diese alle auf dieselbe Datenbank zugreifen sollen, dann müssen diese aber in einem Netzwerk sein (evtl. über das Internet).
Jedoch sollte eine Datenbank nicht direkt im Internet freigegeben sein. Dafür sollte dann ein Application-Server [https://de.wikipedia.org/wiki/Anwendungsserver] erstellt (bzw. aufgesetzt) werden - Zugriff dann z.B. mittels eines WebServices [https://de.wikipedia.org/wiki/Webservice].

Vllt. wäre es besser, du beschreibst mal deine genaue Infrastruktur (und Anforderungen an dein Programm), also z.B. geht es um eine privates Projekt oder eine Firmenlösung etc.


nav93 - So 25.02.18 01:10

Also das Programm ist für den privaten Zweck . Es geht nur darum Sachen über Events zu speichern , löschen oder zu ändern . Da wir aber in Unterschiedlichen Standorten wohnhaft sind , bräuchten wir qausi eine zentrale DB . Die Daten müssen auch nicht verschlüsselt werden oder so.


doublecross - Mi 28.02.18 18:35

Hallo,

deinen Fragen entnehme ich, dass dir noch ein paar Grundlagen in Bezug auf Datenbanken fehlen. Zuerst einmal sprichtst du davon das SQL bei deinem Fereund ebendso installiert sei wie bei dir, du meinst aber (höchstwahrscheinlich) den Micosoft-SQL-Server [https://de.wikipedia.org/wiki/Microsoft_SQL_Server] (Express). SQL ist die Bezeichnung einer Anfragesprache auf diverse Datenbanken [https://de.wikipedia.org/wiki/SQL], aber keine Datenbank [https://de.wikipedia.org/wiki/Datenbank#Datenbankmanagementsystem] selbst. Einige Hersteller von Datenbanken neigen nur dazu das kürzel SQL auch in ihren Produktnamen zu verwenden.

Für deinen Verwendungszweck ist MS-SQL aber wahrscheinlich nicht die richtige Wahl. Du benötigst ja, wie du sagst einen Zentralen Datenbankserver, auf den du mit deinem Freund zugreifen kannst. Also einen Rechner, der rund um die Uhr eingeschaltet ist und im Internet hängt. Also anders gesagt, einen Webserver auf dem deine Datenbank läuft, kostengünstige oder gar kostenlose Webserver bieten dir aber in aller Regel nicht die Möglichkeit einen MS-SQL Server zu betreiben sie bieten meist MariaDB [https://de.wikipedia.org/wiki/MariaDB]/MySQL [https://de.wikipedia.org/wiki/MySQL] oder PostgreSQL [https://de.wikipedia.org/wiki/PostgreSQL]. Das dürfte aber kein Problem sein, da der Funktionsumfang von jeder dieser Datenbanken ausreichen sollte.

Für dich dürften die nächsten Schritte somit sein:

  1. Finde ein Zuhause für deine Daten, also einen Webserver mit Datenbank.
  2. Richte dort eine Datenbank für dein Projekt ein.
  3. Baue deine Anwendung so um, dass sie mir dieser Server Datenbank redet anstelle von deiner lokalen MS-SQL Datenbank


Das sollte alles machbar sein.

Nichts desto trotz ist der von user profile iconTh69 vorgeschlagene Zugriffsweg sicher der bessere.