2012-06-19 9 views
5

Ich versuche etwas zu tun, was meiner Meinung nach sehr einfach ist. Ich habe eine Verbindungszeichenfolge, die ich aus einer Datenbank ergreife. Wenn ich eine neue Instanz der SQL-Verbindung erstelle, sieht es aus (wenn ich das Objekt debugge und ansehe), als ob es die DB-Verbindungszeichenfolge richtig auffüllt. Die Fehler messasge, die ich bekomme, lassen mich denken, dass alle Informationen nach dem Unterstrich im Datenbanknamen beseitigt werden.Datenbankname nach Unterstrich in der Verbindungszeichenfolge wird ignoriert

-Code Ex:

Database db = new SqlDatabase(ConnectionString); // Connection string appears correct 
DbCommand dbCommand = db.GetStoredProcCommand("StoredProcName"); 
DataSet approverDataset = db.ExecuteDataSet(dbCommand); // when this executes, exception is generated 

Wenn ich diesen Code ausführen ich mit folgenden Ausnahme Meldung begrüßt werde: Der Server Haupt „testdb_psidentity“ ist nicht in der Lage, die Datenbank „testdb“ unter dem aktuellen Sicherheits zugreifen

Kontext

Hier ist meine Verbindung String:

DataSource=testserver.com;Database=testdb_ps;Trusted_Connection=false;uid=testdb_psidentity;pwd=testpwd 

ich habe versucht zu ändern, dies zu:

Und während das den vollständigen Namen der Datenbank zu erhalten scheint, scheint es auch nach einer Datenbank mit diesen Klammern im Namen zu suchen. Wie bekomme ich diesen Fehler: Kann Datenbank "[testdb_ps]" nicht öffnen, die von der Anmeldung angefordert wird. Die Anmeldung ist fehlgeschlagen. Anmeldung fehlgeschlagen für Benutzer 'testdb_psidentity'.

Allerdings kann ich eine Verbindung zur Datenbank mit diesem Login/Passwort in SQL Server Management Studio anmelden.

Irgendwie kann ich es akzeptieren, den Datenbanknamen testdb_ps Datenbankname? Ich kann den Datenbanknamen nicht einfach ändern, weil ich keinen Zugriff darauf habe, und mir wurde gesagt, dass das Ändern des Datenbanknamens einfach nicht passieren wird.

+0

hat Ihr Benutzer "testdb_psidentity" connect/execute Berechtigungen für die Datenbank? Wenn Sie sich nicht sicher sind, können Sie es überprüfen, indem Sie auf -> mit der rechten Maustaste auf Datenbank -> Eigenschaften -> Berechtigungen -> wählen Sie den Benutzer und überprüfen Sie unter expliziten Registerkarte ... – NiK

+0

Leider, wenn ich mit der rechten Maustaste auf die DB, ich habe keinen Zugang, um das zu sehen. –

+0

Erreiche aber versuche die Datenquelle in die Syntax [testserver.com] oder [testserver]. [Com] zu setzen. Und Sie sind sicher, dass der Name der Quelle testserver.com (nicht testserver) ist. Sehen Sie den Namen in SMSS – Paparazzi

Antwort

1

Sie können versuchen, Anführungszeichen um die Verbindungszeichenfolge zu setzen, ich denke, es interpretiert den Unterstrich als Trennzeichen.

Je nachdem, wie Sie es Anführungszeichen verwenden oder

" 
+0

Hat dein Zitat versaut? Wie meinst Du das? Ich habe versucht, es als String-Variable zu verwenden. Ich habe nicht versucht, es zu programmieren, aber das ist in unseren Codierungsstandards generell verpönt. –

+0

In der Regel setzen wir unsere Verbindungszeichenfolgen in die Datei web.config oder app.config. Deshalb haben wir wirklich kein Problem mit dem '_' Zeichen. Wenn Sie jedoch die Verbindungszeichenfolge von einer Datenbank erhalten müssen, versuchen Sie vielleicht, sie zuerst in eine Zeichenkette zu schreiben und diese Zeichenkette zu senden. Die '"' wird in einigen Szenarien verwendet, wenn Sie das Zeichen nicht einfach eingeben können, aber wenn Sie mache ein String-Literal in C#, du solltest es nicht brauchen –

+0

Nur ein Vorschlag, aber wenn diese Datenbank schon seit einiger Zeit existiert, würde ich annehmen, dass andere Apps sie benutzen? Wenn ja, könntest du sehen und sehen, wie sie vorgehen. –

0

Sind u kann in die Datenbank durch SQL Server Management Studio verbinden? Versuchen

  1. Firewall deaktivieren
  2. IP-Adresse verwenden
  3. explizit SQL Server-Instanz Namen.
0

Generieren Sie die Entitätsklassen mit dem Assistenten. Auf diese Weise erhalten Sie die codierte Verbindungszeichenfolge in app.config

Verwandte Themen