2017-05-10 12 views
1

ASP.NETのWebサービスを使用して、アプリケーションからすべての登録ユーザーを取得したいとします。しかし、私は接続文字列に問題があります。このMyDatabaseConnectionString1ASP.NET Webサービス - 接続文字列を使用してデータベースに接続する方法

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; 
    } 

は、私は私がそこから情報を取得するテーブルのために使用する接続文字列です。そのテーブルでは動作しますが、Webサービスでは動作しません。

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

ウェブサービスに同じ接続文字列を使用する必要がありますか?

これはエラーです: enter image description here

+0

接続文字列に初期カタログがありませんか? [MSDNページ。](https://msdn.microsoft.com/en-us/library/d7469at0(v=vs.110).aspx)を参照してください。ただし、そのサーバー上に複数のデータベースがある場合を除き、[shouldn ' t問題](http://stackoverflow.com/a/1949790/6530134)... [おそらく](http://stackoverflow.com/questions/1949774/what-is-the-point-of-initial-catalog -in-a-sql-server-connection-string#comment1862783_1949790)? –

+0

SqlConnectionは、接続文字列の名前ではなく、接続文字列を要求します。 – Crowcoder

答えて

1

はSystem.Configurationアセンブリが参照されていることを確認してください。 この構文を使用します。

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

それは動作します。問題になっていた可能性がありますが、それを構文で表示する方法はわかりませんでした。 – Seinfeld

+0

皆さんありがとうございます! – Seinfeld

1

あなたが(入力として接続文字列を期待する)SqlConnectionのための入力として直接MyDatabaseConnectionString1(接続文字列の名前)を使用しないでください。代わりに、次の操作を行います。

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

あなたは.configファイルであなたのMyDatabaseConnectionString1を宣言します。 SqlConnection.configファイルを読み取るのではなく、connStr入力を受け取ります。したがって、エラーが発生します。 System.Configuration名前空間で利用可能なConfigurationManagerを使用して、.configファイルの接続文字列を読み取る必要があります。次に、を使用して、.configファイルを読み取った

関連する問題