2016-01-29 8 views
11

Ich habe ein C# -Programm mit einer SQL Server-Datenbank erstellt. Es funktioniert gut auf meinem Computer, aber auf dem PC meines Freundes tut es nicht (mein Freund hat keinen SQL Server 2008). Ist es möglich, es ohne Installation zu machen? Und wenn es geht, wie kann es gemacht werden?Wie kann ich C# -App ausführen, das lokale SQL Server-Datenbank auf einem anderen Computer enthält?

Dies ist meine Verbindungszeichenfolge:

connectionString="Data Source=\v11.0;AttachDbFilename=|DataDirectory|\MainDatabase.mdf;Integrated Security=True" 
+3

Mögliches Duplikat von [LocalDB Deployment auf dem Client-PC] (http://stackoverflow.com/questions/9655362/localdb-deployment-on-client-pc) –

+0

Möchten Sie, dass Ihr Freund Zugriff auf Ihre Datenbank hat oder ist die Datenbank einzigartig? Beachten Sie, dass für jedes lokale Hosting, für das SQL erforderlich ist, ein SQL Server erforderlich ist. Verwenden Sie stattdessen Alternativen wie SQLite (für Benutzereingaben) oder Ressourcendateien (für interne Elemente). Wenn der ehemalige, müssen Sie selbst einen Server hosten. – aeee98

Antwort

11

SQL Server ist für Server-Datenbanken. Sie können Ihr Projekt ändern, um SQL Server CE (SQL Server Compact Edition) zu verwenden, bei dem es sich um eine lokale Einzeldatei-Datenbank handelt. Es ist dem "echten" SQL Server sehr ähnlich, daher könnte es die einfachste Lösung sein. Ihr Code ändert sich wahrscheinlich nur für die Verbindungszeichenfolge.

+0

Petar Bechev, es gibt eine Erweiterung für Visual Studio (SQL Server Compact Toolbox), die Sie im Menü Extras installieren können. Erstellen Sie dort einen DB, fügen Sie ihn Ihrem Projekt hinzu. Erstellen Sie dann dort Ihre Tabellen neu und ändern Sie die Verbindungszeichenfolge Ihrer Anwendung, um diese neue Datenbank zu verwenden. – Tsayper

+0

Ist SQL CE nicht veraltet? – edmz

+0

@black ja, aber es macht immer noch seine Arbeit. Für ein neues Projekt ist es besser, SQLite als lokalen DB zu verwenden, denke ich. – Tsayper

1

Soweit ich weiß, haben Sie eine von zwei Optionen. Sie haben entweder einen Server (ein PC, der als Server eingerichtet wurde und diese Datenbank enthält) oder Sie nehmen die einfachere Option und hosten Ihre Datenbank in der Cloud. Viele Websites bieten einen kostenlosen Dienst, um Ihre Datenbank für einen begrenzten Zeitraum oder begrenzten Speicherplatz zu hosten. Wenn Sie ein Azure-Abonnement haben, wäre das definitiv der richtige Weg.

+0

Eigentlich möchte ich das nicht tun, weil ich dieses Programm eines Tages verkaufen möchte, damit jeder Benutzer seine eigene Datenbank auf seinem Computer hat. Können Sie mir bitte etwas für die lokale Datenbank sagen? –

+0

Ist das nicht Azure ist ein kommerzieller Dienst .. –

+0

Sie erhalten ein kostenloses Abonnement für Azure, wenn Sie Student sind. Oder wenn du Dreamspark hast. –

5

Verwenden Sie die IP-Adresse Ihres lokalen Computers, auf dem die Datenbank vorhanden ist; 1433 ist die Standardportnummer. Ändern Sie dann die Verbindungszeichenfolge entsprechend:

connectionString="Data Source=190.190.200.100,1433; 
Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;" 
+0

Ändern Sie die Datenquelle in die IP-Adresse des Host-PCs und es sollte funktionieren – aeee98

1

Wenn Sie Ihr Programm ohne die SQL Server ausgeführt werden installiert Sie haben eine Service-basierte SQL-Datenbank zu verwenden. see this image

können Sie eine lokale Datenbank durch Visual Studio hinzufügen (Projekt -> neues Element hinzufügen)

+1

nicht Service-basierte db erfordern LocalDB installiert? – Tsayper

+0

Wenn Sie das Projekt für die Veröffentlichung erstellen, enthält Visual Studio die Datenbank darin. –

4

ersten Öffnen von Port 1433 in Firewall, wenn Sie Sie Firewall nicht deaktivieren müssen, können. gehe zu Run => cmd => Ipconfig finde die Kartenaktivität des Netzwerks. Show like enter image description here

Wie mein Computer nur Drahtlos und meine andress in privaten lan ist: 192.168.100.165 Und jetzt ändern Sie Verbindungsstring in web.config.

connectionString="Data Source=192.168.100.165; 
Initial Catalog=yourDataBase;User ID=yourUsername;Password=yourPassword;" 

Wenn Sie nicht wissen, „yourusername“ und „IhrKennwort“ siehe Link und erstellen Benutzernamen und Passwort in MsSQL https://msdn.microsoft.com/en-us/library/aa337562.aspx

Und wenn Sie Datenbank aus dem Internet verbinden möchten Sie müssen den Port Ihres Routers öffnen

2

Meine Lösung wird gerecht, wenn Sie eine SQL-Datenbank auf dem Computer Ihres Freundes benötigen, statt von Ihrem eigenen zu hosten.

Die kostengünstigste Möglichkeit, eine Datenbank lokal auf jedem Gerät mit einer geeigneten Datenbank zu verwalten, ist die Konvertierung in SQLite. Dies ist eine lokale Gerätealternative, die leichter ist und es keinem Benutzer erfordert, einen SQL-Server überhaupt zu installieren.

Es gibt auch Alternativen wie das Schreiben von Informationen in eine versteckte Datei (normalerweise binär, wenn Sie nicht möchten, dass Ihre Anwendung gehackt wird).

Kurz gesagt, betrachten Sie nur eine SQL-Datenbank, wenn Sie die Datenbank hosten, andernfalls verwenden Sie Alternativen.

1

Wenn Ihre Verbindungszeichenfolge wie unten ist

connectionString="Data Source=\v11.0;AttachDbFilename=|DataDirectory|\MainDatabase.mdf;Integrated Security=True" 

dann sollten Sie sql localdb 2012.msi die auf Ihrem Freund PC installieren. Und stellen Sie sicher, dass die .mdf-Datei die gleiche wie auf Ihrem Computer befindet.

+0

Danke lieber Raidri. –