2016-03-23 5 views
2

私はC#でWPFでクライアントを作成しています。クライアント(タブレットサーフェス)にインストールする必要があります。それは私がちょうど、私はここからダウンロードしたインスタンスを取得するには、SQL Serverの2014 Expressエディションをインストールし、言った:SQL Server 2014 ExpressでC#コードから接続できません。接続を開くことができません。

https://www.microsoft.com/en-US/download/details.aspx?id=42299

と私はこれを取得:私は、すべてのものをインストールし

Express 64BIT\SQLEXPR_x64_ENU.exe

をもちろん、私はSQL Serverのインタフェースのmanagamentを持っていないが、私は、DBを作成することはできません、ここに私のエラーです:GE(

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server

これは私の接続文字列であります)ファイルの定数からこのT:

Server=SQLEXPRESS;Database=master;Integrated security=true;

と、これは私のコードです:

public void CreateDatabase(String PID) 
     { 
      String connection = Constants.localServerConnectionSQL.LocalServerConnectionSQLName; 
      SqlConnection Connection = new SqlConnection(); 
      Connection = new SqlConnection(connection); 
      Connection.Open(); 

      string Path = Environment.GetEnvironmentVariable("LocalAppData") + @"\CDA\UserDatabase\" + PID.ToString(); 
      log.Info("DBCreationScripts: Path DB: " + Path.ToString()); 

      String str = "CREATE DATABASE [" + PID + "] ON PRIMARY " + 
      "(NAME = MyDatabase_Data, " + 
      "FILENAME = '" + Path + ".mdf', " + 
      "SIZE = 5MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " + 
      "LOG ON (NAME = [" + PID + "Log_Log], " + 
      "FILENAME = '"+Path+"Log.ldf', " + 
      "SIZE = 1MB, " + 
      "MAXSIZE = 5MB, " + 
      "FILEGROWTH = 10%)"; 

      log.Info("DBCreationScripts: Comando di creazione DB: " + str); 


      try 
      { 
       SqlCommand myCommand = new SqlCommand(str, Connection); 
       log.Info("DBCreationScripts: Lancio il comando di creazione database"); 
       myCommand.ExecuteNonQuery(); 
      } 
      catch (System.Exception ex) 
      { 
       log.Info("DBCreationScripts: Eccezione nel comando di creazione database - Message: " + ex.Message); 
       throw ex; 
      } 
     } 

問題は、インスタンスがSQLEXPRESSで、それは接続を開くことができないということですが、同僚がある理由を理解していませんない。 E '私は間違った設定をしていますか?

SQLサービスはすべてアクティブです。

ヒント?

+0

データソース= [DBInstance];初期カタログ= [データベース];ユーザーID = [ユーザー];パスワード= [パスワード]; MultipleActiveResultSets = True –

+6

SQLEXPRESSインスタンスに接続しようとしていません。 SQLEXPRESSというマシンに接続します。接続文字列を修正し、適切なインスタンス名、例えば '。\ SQLEXPRESS'または' localhost \ SQLEXPRESS'または 'that.other.name \ SQLEXPRESS'を使用してください。そして、あなたがBobby Tables(SQLインジェクション攻撃とも呼ばれる)を望んでいない限り、文字列連結を使用しないでください。 –

+1

@MarcoBongは、 'Server'の代わりに' Data Source'を使用しても役に立ちません。エラーは構文に関するものではなく、 'Server' *は' Data Source'の有効な同義語です –

答えて

0

SQL Serverインスタンスを参照する正しい方法は、Server Address\Instance Nameです。たとえば、MyServer\SQLExpress,または127.0.0.1\SQLEXPRESSです。

バックスラッシュを使用しない場合、テキストはマシン名として解釈されます。 Server=SQLEXPRESSの接続文字列は、SQLEXPRESSという名前のサーバーに接続しようとします。

関連する問題