2009-06-15 24 views
5

2008年のSQL Server Expressが自分のマシンにインストールされていて、リモート接続を確立しようとしています... MS SQL Server Management Studioを使用すると、 (同じ資格情報を持つ)すべてで何の問題もなくデータベースが、私は私のC#アプリケーションに接続文字列を作成しようとすると、私は例外を取得:確立中c#2008 SQL Server Expressの接続文字列

ネットワーク関連またはインスタンス固有の エラーが発生しましたa SQL Serverへの接続。サーバー が見つかりませんでした、またはアクセスできませんでした。 インスタンス名が であり、SQL Serverが 接続を許可するように構成された であることを確認してください。ここで

(個人情報が変更された)私の接続文字列は次のようになります。

"Data Source="MACHINENAME\\SQLEXPRESS";User ID="Admin";Password="the_password";Initial Catalog="MyDatabase";Integrated Security=True;Connect Timeout=120"); 

私は同じ設定でManagement Studioを使用してログインすることができ、言ったように:同じユーザーID 、パスワードとデータソース名が含まれていますが、上記の接続文字列で接続を開こうとすると失敗します。

注:

  1. 私は、サーバーへのTCP/IP接続を有効にし、ファイアウォールを無効にして、サーバー上のリモート接続を有効にしている、SQLブラウザをオン。

  2. 同じマシン上にあるときに接続文字列が正常に動作します。

  3. 私はIntegrated Securityオプションを調べましたが、Windowsログインを使用しようとしていないことを確認するためにfalseに設定しましたが、それでも失敗します。

  4. データベースは、Windowsログインとデータベースログインの両方を許可するように設定されています。

  5. 統合セキュリティオプションをSSPI、True、最後にFalseに変更すると、3つすべて私に上記と同じエラーが表示されました。

私が何か間違っていると誰か教えていただけますか?

string _connectionString = 
      //string.Format("Server=%s;User ID=%s;Password=%s;Database=%s;Connect Timeout=120", // Same problem 
      //string.Format("Server=%s;User ID=%s;Password=%s;Database=%s;Integrated Security=False;Connect Timeout=120", // Same problem 
      string.Format("Data Source=%s;User ID=%s;Password=%s;Initial Catalog=%s;Integrated Security=False;Connect Timeout=120", // Same problem 
      "GANTCHEVI\\SQLEXPRESS", 
      "FinchAdmin", 
      "the_password", 
      "Finch"); 

Connected Via Management Studio: See Picture http://s113.photobucket.com/albums/n202/ozpowermo/?action=view&current=ManagementStudio.jpg

http://s113.photobucket.com/albums/n202/ozpowermo/?action=view&current=ManagementStudio.jpg:ここ

UPDATEは、私の正確なコード(この時のみパスワードが削除された、と私は同じマシン上で実行している管理スタジオの写真を追加しました)です

私はそれを考え出した:

番目を使用してe「データソース=」ラベル「ユーザーID」を使用する必要があります。ユーザーIDを使用すると、動作していないように見えます。

string _connectionString = "Data Source=GANTCHEVI\\SQLEXPRESS;Initial Catalog=Finch;Integrated Security=False;User Id=FinchAdmin;Password=the_password;Connect Timeout=0";" 

答えて

11

接続文字列からTrueを選択して、統合セキュリティを削除します(オプション)。 - falseの場合、ユーザーIDとパスワードは、接続で指定されている

統合セキュリティ:MSDNから

。 trueの場合、現在のWindowsアカウントの資格情報が認証に使用されます。

+0

1ニースの説明をしてみてください。 – Praveen

0

Integrated Security = SSPIを使用するとどうなりますか?

Windowsログインを使用したくない場合は、Integrated Securityパラメータの削除に関するもう1つの答えが正しいと思います。

1

[OK]を - あなたはMACHINENAME \ SQLEXPRESSに

をsqlping私はあなたがこれらのhttp://blogs.msdn.com/sqlexpress/archive/2005/05/05/415084.aspx

の全てを試してみましたが推測していますを試してみましたが、あなたはpingのMACHINENAME

最後に、私はあなただけでかなり確信していることができますMACHINENAME \ SQLEXPRESS MACHINENAME \ SQLEXPRESSが必要です。

+0

返信ありがとう:) 私はすでにこれらの設定をすべて有効にしており、Management Studioを使用してDBに接続することができます。実際にManagement Studioに接続しています。 MACHINENAMEにpingを実行すると、ルータに接続されているマシンのアドレス192.168.0.9が返されます。 スラッシュが特殊文字と見なされるため、文字列の中にあるときは2つのスラッシュです。 – Kiril

+0

はい、2つのスラッシュで完全に正しいと判断されました。ドー! –

1

SQLインスタンスが受信TCP接続を受け入れるようにcobfiguredされている可能性があります.Sta rt-> SQL Server 2008 - >構成ツール - > SQL Server構成マネージャーをクリックします。そのツールの左側にネットワーク設定が表示されます。展開すると、有効になっているプロトコルを確認できます。

+0

TCP接続を受け入れるように設定されています。 私はC#アプリケーションと同じマシンにManagement Studioを持っており、同じ設定でDBに接続しています。 – Kiril

+1

現在のWindowsアカウントの資格情報を使用できるように、ローカルのdbサーバーに統合セキュリティを導入したいと思っていました。この回答は私に設定ツールを開くようになった。 SQL Serverエージェントを起動すると、C#アプリケーションからデータベースに接続できます。ありがとうございました。 – DavidHyogo

2

この

string sqlcon=("Data Source="your pc name\\SQLEXPRESS"; 
UserID=sa; 
Password=****; 
Initial Catalog="+MyDatabase+"; 
IntegratedSecurity=True;"); 
関連する問題