Autor Beitrag
nav93
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: Sa 24.02.18 01:37 
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 :)
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 24.02.18 02:14 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: nav93
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 24.02.18 09:22 
Welche Datenbank nutzt du denn und wie sieht der zugehörige ConnectionString aus?

Für diesen Beitrag haben gedankt: nav93
nav93 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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?

Für diesen Beitrag haben gedankt: nav93
nav93 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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.


Zuletzt bearbeitet von Th69 am So 25.02.18 13:52, insgesamt 2-mal bearbeitet

Für diesen Beitrag haben gedankt: nav93
nav93 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 24.02.18 16:20 
Sind die Rechner denn in einem (lokalen) Netzwerk miteinander verbunden? Dann ist dein Szenario so möglich.
nav93 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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 erstellt (bzw. aufgesetzt) werden - Zugriff dann z.B. mittels eines WebServices.

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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: 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 (Express). SQL ist die Bezeichnung einer Anfragesprache auf diverse Datenbanken, aber keine Datenbank 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/MySQL oder 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.