2017-05-10 4 views
1

Ich möchte alle registrierten Benutzer aus meiner Anwendung über den Web-Service in ASP.NET abrufen. Ich habe jedoch ein Problem mit der Verbindungszeichenfolge.ASP.NET-Webdienst - Verbindung mit der Datenbank mithilfe der Verbindungszeichenfolge herstellen?

public static String getRegisteredUsers(string usernameCode) 
    { 
     string username = ""; 

     SqlConnection con = new SqlConnection("MyDatabaseConnectionString1"); 
     SqlCommand cmd = new SqlCommand("Select Username from Users where usernameCode = '" + usernameCode.ToUpper() + "'", con); 
     con.Open(); 

     SqlDataReader dr = cmd.ExecuteReader(); 

     while (dr.Read()) 
     { 
      username = dr["username"].ToString(); 
     } 

     dr.Close(); 
     con.Close(); 

     return username; 
    } 

Diese MyDatabaseConnectionString1 ist die Verbindungszeichenfolge, die ich für die Tabelle verwenden, die ich von den Informationen abrufen möchten. Es funktioniert für diese Tabelle, aber nicht für den Webservice.

<add name="MyDatabaseConnectionString1" connectionString= "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Korisnik\Desktop\Fitness\App_Data\MyDatabase.mdf;Integrated Security=True"/> 

Sollte ich die gleiche Verbindungszeichenfolge für Web-Service verwenden oder ist es irgendwie anders gemacht?

Dies ist der Fehler: enter image description here

+0

Die Verbindungszeichenfolge fehlt der ursprüngliche Katalog? Siehe [MSDN-Seite.] (Https://msdn.microsoft.com/en-us/library/d7469at0 (v = vs.110) .aspx) Wenn Sie jedoch nicht mehrere Datenbanken auf diesem Server haben, t Angelegenheit] (http://stackoverflow.com/a/1949790/6530134) ... [möglicherweise] (http://stackoverflow.com/questions/1949774/what-is-the-point-of-initial-catalog -in-sql-server-verbindungszeichenfolge # comment1862783_1949790)? –

+0

SqlConnection erwartet die Verbindungszeichenfolge, nicht den Namen der Verbindungszeichenfolge. – Crowcoder

Antwort

1

Stellen Sie sicher, System.Configuration Assembly verwiesen wird. Verwenden Sie diese Syntax:

SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MyDatabaseConnectionString1"].ConnectionString); 
+0

Das funktioniert. Wundert sich, dass das Problem hätte sein können, wusste aber nicht, wie es mit Syntax angezeigt werden soll. – Seinfeld

+0

Danke an euch alle! – Seinfeld

1

Sie sollten nicht MyDatabaseConnectionString1 (Name der Verbindungszeichenfolge) für SqlConnection direkt als Eingabe verwenden (die Verbindungszeichenfolge als Eingabe erwartet). Tun Sie dies statt:

string connStr = ConfigurationManager.ConnectionStrings["MyDatabaseConnectionString1"].ConnectionString; 
SqlConnection con = new SqlConnection(connStr); 
... //continue as what you have done 

Sie deklarieren MyDatabaseConnectionString1 in der .config Datei. Die SqlConnection liest Ihre .config Datei nicht, aber nehmen Sie den connStr Eingang. Damit bekommst du den Fehler. Sie sollten Ihre Verbindungszeichenfolge in der .config-Datei lesen, indem Sie ConfigurationManager verwenden, das in dem Namespace System.Configuration verfügbar ist. Dann verwenden Sie die connStr aus dem Lesen der .config Datei

Verwandte Themen