it-swarm.com.de

Herstellen einer Verbindung zu SQL Server mit Visual Studio Express-Editionen

Ich finde es seltsam, dass in Visual C # 2008 Express Edition bei Verwendung des Datenbank-Explorers die folgenden Optionen zur Verfügung stehen:

  1. Microsoft Access
  2. SQL Server Compact 3.5 und
  3. SQL Server-Datenbankdatei.

ABER wenn Sie Visual Web Developer 2008 Express verwenden, können Sie eine Verbindung zu einem regulären SQL Server, Oracle, ODBC usw. herstellen.

Wenn Sie Befehlszeilen- oder andere C # -Anwendungen entwickeln, die mit einer SQL Server-Datenbank kommunizieren müssen, müssen Sie Ihren LINQ-/Datenzugriffscode wirklich mit einem der folgenden Befehle erstellen: IDE (Visual Web Developer) und Ihr Programm in einem anderen (Visual C #)?

Es ist keine harte Umgehung, aber es scheint seltsam. Wenn Microsoft Sie zwingen wollte, ein Upgrade auf Visual Studio durchzuführen, um eine Verbindung zu SQL Server herzustellen, warum sollten sie diese Funktion in eine ihrer kostenlosen IDEs aufnehmen, die andere jedoch nicht? Ich habe das Gefühl, dass mir etwas fehlt (wie man das alles in Visual C # macht).

49
Tom Lianza

Sie sollten in der Lage sein, die Option SQL Server-Datenbankdatei zu wählen, um den richtigen Datenbanktyp zu erhalten (system.data.SqlClient provider), und korrigieren Sie die Verbindungszeichenfolge manuell, um auf Ihre Datenbank zu verweisen.

Ich denke, dass die Argumentation hinter diesen DB-Entscheidungen ungefähr so ​​lautet:

  • Wenn Sie die Express Edition verwenden und nicht Visual Web Developer verwenden, erstellen Sie wahrscheinlich ein Desktop-Programm.
  • Wenn Sie ein Desktop-Programm erstellen und die Express-Edition verwenden, sind Sie wahrscheinlich ein Hobbyist oder ein Benutzer, der zu Hause arbeitet, anstatt für ein Unternehmen zu entwickeln.
  • Wenn Sie nicht für ein Unternehmen entwickeln, ist Ihre App wahrscheinlich für den Endbenutzer bestimmt, und Ihr Datenspeicher befindet sich wahrscheinlich auf dessen lokalem Computer.
  • Sie sollten Serverklasse Datenbanken nicht auf Endbenutzer-Desktops bereitstellen. Ein in-process db wie Sql Server Compact oder MS Access ist viel geeigneter.

Diese Logik gilt jedoch nicht ganz. Selbst wenn jeder dieser 4 Punkte in 90% der Fälle zutrifft, gilt dies, wenn Sie alle vier Punkte anwenden, nur für ~ 65% Ihrer Zielgruppe, was bedeutet, dass bis zu 35% des Express-Marktes legitimerweise sprechen möchten zu einer Server-Klasse db, und das ist eine bedeutende Gruppe. Und so ist die vereinfachte (gierige) Version:

  • Ein echter Datenbankserver (und die Hardware, mit der er ausgeführt wird) kostet echtes Geld. Wenn Sie Zugriff darauf haben, sollten Sie sich mindestens die Standardversion von Visual Studio leisten können.
21
Joel Coehoorn

Problemumgehung:

  1. Öffnen Sie Ihre Lösung in Visual Web Developer Express. Einige der Projekte in der Projektmappe werden nicht geladen, aber es ist in Ordnung.
  2. Stellen Sie im Datenbank-Explorer eine neue Verbindung zur erforderlichen Datenbank von SQL Server aus her.
  3. Fügen Sie ein neues Klassenbibliotheksprojekt hinzu.
  4. Fügen Sie ein LINQ to SQL Classes-Element hinzu und verknüpfen Sie es mit Ihrer Datenbank.
  5. Schließen Sie die Lösung.
  6. Öffnen Sie die Projektmappe in Visual C # Express.

Jetzt verfügen Sie über eine LINQ to SQL-Klassenbibliothek, die mit Ihrer SQL Server-Datenbank in Visual C # Express verknüpft ist.

pdate

Die Lösung ist für Visual Studio Express 2010.

21
Sergey Shandar

Die einzige Möglichkeit, C # Express 2008 zum Laufen zu bringen, bestand darin, die Datenbankdatei zu verschieben. Also habe ich SQL Server Management Studio geöffnet und nach dem Löschen der Datenbank die Datei in meinen Projektordner kopiert. Dann habe ich die Datenbank wieder mit dem Management Studio verbunden. Nun, wenn ich versuche, an die lokale Kopie anzuhängen, funktioniert es. Anscheinend können Sie dieselbe Datenbankdatei nur einmal verwenden.

2
Z.K.

Ich vermute, dass Ihre Lösungen mit VWD eher auf Servern von Drittanbietern bereitgestellt werden, von denen viele eine dynamisch angehängte SQL Server-Datenbankdatei nicht zulassen. Also das Zulassen des anderen Verbindungstyps.

Dieser Unterschied im Verhalten von IDE ist einer der Hauptgründe für das Upgrade auf eine Vollversion.

2
Mitchel Sellers

Ich habe gerade meine Geschäftsanwendung in Windows Forms gestartet. Ich verwende derzeit Visual C # Express 2010/SQL Server 2008 R2 Express, um es zu entwickeln. Ich habe das gleiche Problem wie bei OP, bei dem ich eine Verbindung zu einer Instanz von SQL Server herstellen muss. Ich überspringe hier Details, aber diese Datenbank ist eine zusammengeführte Datenbank, die zwischen 2-3 Computern synchronisiert wird und die auch die Anwendung verwendet, die ich gerade entwickle.

Ich habe zumindest eine schnelle Problemumgehung gefunden, da ich meine gespeicherten Prozeduren jetzt problemlos in Tableadaptern verwenden kann.

Ich habe eine SQL-Verbindung, die ich in einem anderen Projekt bei der Arbeit (VS2010 Premium) verwendet habe, in die app.config kopiert und dort alles geändert, was ich brauchte. Als ich zu meinen Einstellungen zurückkehrte, musste ich nur bestätigen, dass ich wollte, was in der app.config-Datei war. Die einzigen Nachteile, die ich sehen kann, sind, dass Sie die Verbindung nicht "testen" können, da Sie, wenn Sie die Konfiguration der Verbindungszeichenfolge durchgehen, nirgendwo hingehen können, da "SQL Server" keine Option ist. Der andere Nachteil ist, dass Sie alles manuell eingeben müssen, da Sie keine Assistenten verwenden können, damit es funktioniert.

Ich weiß nicht, ob ich es so hätte machen sollen, aber zumindest kann ich mich jetzt mit meinem SQL Server verbinden :).

EDIT:

Es funktioniert nur mit SQL Server 2008 R2 Express-Instanzen. Wenn Sie es mit SQL Server 2008 R2 Workgroup und höher versuchen, erhalten Sie eine unangenehme Warnung von Visual C # 2010 Express, in der Sie darauf hingewiesen werden, dass Sie diese Verbindung nicht mit der aktuellen Version von Visual Studio verwenden können. Das habe ich bekommen, als ich versucht habe, einige meiner Tableadapter zu modifizieren. Ich bin zurück zu einer SQL Express-Instanz gewechselt, um sie zu entwickeln, und sie funktioniert wieder einwandfrei.

2
Tribalinius

Wenn Sie dies verwenden, um ein LINQ to SQL zu erhalten, das ich für meinen Visual Developer ausgeführt habe und wollte, 1) verwenden Sie den kostenlosen Visual WEB Developer, um eine Verbindung mit der SQL Server-Instanz herzustellen, erstellen Sie Ihre LINQ-Schnittstelle und kopieren Sie die generierten Dateien in Ihr Vis-Dev-Projekt (ich verwende VD nicht, weil es lustig klingt). Schließen Sie nur die * .dbml-Dateien ein. Die Vis-Dev-Umgebung benötigt ein oder zwei Sekunden, um die unterstützenden Dateien zu erkennen. Es ist ein kleiner zusätzlicher Schritt, aber auf jeden Fall besser als es von Hand zu machen oder ganz aufzugeben oder sogar noch schlimmer, dafür zu bezahlen. Mooo ha ha haha.

2
user188143