2009-06-11 4 views
0

Ich habe eine Win Forms-Anwendung für einen einzelnen Benutzer, die eine SQL Server Express-Datenbank über ADO.NET verwendet. Ich möchte mehr zu meiner App hinzufügen, aber indem ich Linq zu Sql benutze (während ich Linq zu Sql lerne). Ich kann die Datenbank nicht gleichzeitig an zwei Orten sehen. Entweder kann ich es im ursprünglichen Code mit ADO sehen, oder ich kann es mit dem neuen Code mit Linq to SQL sehen. Wenn Sie die Daten mit einer Methode verwenden, werden sie von anderen ignoriert. Zuvor habe ich den neuen Linq to SQL-Code aktiviert, indem ich das Verzeichnis der Datenbank einschließlich der Datenbank in einen anderen Verzeichnisnamen kopiert und mit L2S abgerufen habe, bevor ich es mit ADO bekommen habe. So konnte ich sehen, dass mein Linq to SQL-Code funktioniert (hurra!). Jetzt kann ich diese neue Datenbank mit dem ursprünglichen Code mit ADO nicht verwenden, da "Zugriff verweigert (5)" ist. Was mache ich falsch? Wie kann ich es teilen?Kann Linq to SQL mit ADO in SQL Server Express koexistieren?

BEARBEITEN: Entfernt den Teil der Frage nach dem Anhängen in SQL Server; Dieser Teil des Problems ist, dass ich SQL Server als Admin (Vista) ausführen muss und jetzt es anfügt./EDIT

Nun, da ich L2S verwende, wenn ich versuche, die Verbindung in ADO.NET zu öffnen, bekomme ich "nicht in der Lage, die physische Datei zu öffnen" C: \ PRICINGtests \ PRICING.MDF ". Betriebssystemfehler 5: "5 (Zugriff wurde verweigert.)". Der Versuch, eine automatisch benannte Datenbank für die Datei C: \ PRICINGtests \ PRICING.MDF anzufügen, ist fehlgeschlagen. Es ist eine Datenbank mit demselben Namen vorhanden oder die angegebene Datei kann nicht geöffnet werden über die UNC-Aktie. "

Antwort

0

Haben Sie hier zwei separate Verbindungszeichenfolgen? Ich nehme an, Sie haben und beide versuchen, die MDF mit dem gleichen Datenbanknamen auf Ihrem SQL-Server anhängen, die nicht erlaubt ist.

Haben Sie ADO & Linq-Code verwenden die gleiche einzelne Verbindungszeichenfolge und sie verwenden beide die gleiche Datenbank.

+0

Danke, Chris. Ich weiß nicht, wie ich die vollständige Verbindungszeichenfolge mit Linq erreichen kann, nur mit dem "DataContext db = new DataContext (@" C: \ PRICINGtests \ PRICING.MDF ");", und ich hob diese Zeichenfolge direkt aus der App-Konfigurationsdatei, um sicherzustellen, dass es keine Tippfehler gab. In jedem Fall ist dies ein kleines Programm und ich schalte ganze Abschnitte davon ab; Während einer einzelnen Ausführung versuche ich nur mit einer Datenverbindungsmethode zu arbeiten. Das Ausführen der Datenbank beim ersten Mal mit Linq machte es nur so, dass ich es später nicht nur mit ADO ausführen konnte. – CindyH