2016-11-24 20 views
1

私はプログラムをデバッグするか、または私のdevマシン上のどこでも使用すると、ローカルファイルデータベースに接続しようとしています。私は、ファイルを取り、別のマシン上でそれを実行しようとするたびに私はC#ローカルデータベースエラー50

エラー50を得るlocaldbに接続することはできません:ローカルデータベースのランタイムエラーが発生し、指定されたLocalDBインスタンスは、今

存在しません。私の問題は、私は問題の原因を知っている、私はちょうどそれを解決する方法を知らないです。

テストマシンにSQL Server Express 2016をインストールしましたが、localDbは初期化されません。私のDevのマシンで

、私は後藤 "C:\ Program Files \ MicrosoftのSQLサーバ\ 130 \ LocalDB" することができますしかし、私のテストマシン上

私が唯一持っている「C:\ Program Files \ MicrosoftのSQLサーバ\ 130 \ "LocalDBはありません。

私は実際にSQL Serverインスタンスを作成するのではなく、ファイルを呼び出すだけですが(下のコードを参照してください)、SQL Serverのローカルインスタンスを初期化する方法はわかりません。私は検索し、さまざまな方法を試みたが、何も私のために働いていません。これは関係なく、私の地元のdevのマシン上で完璧に動作しない言及したように

public SqlConnection connectionOpen() 
    { 
     string databaseDirectory = Convert.ToString(Directory.GetCurrentDirectory() + @"\gameDatabase.mdf"); 
     SqlConnection conn = new SqlConnection(); 
     conn.ConnectionString = @"Data Source =(LocalDB)\MSSQLLocalDB; AttachDbFilename ="+databaseDirectory +"; Integrated Security = True"; 
     conn.Open(); 
     return conn; 
    } 
    public void connectionClose() 
    { 
     string databaseDirectory = Convert.ToString(Directory.GetCurrentDirectory() + @"\gameDatabase.mdf"); 
     SqlConnection conn = new SqlConnection(); 
     conn.ConnectionString = @"Data Source =(LocalDB)\MSSQLLocalDB; AttachDbFilename ="+databaseDirectory + "; Integrated Security = True"; 
     conn.Close(); 
    } 

どこexeファイルとMDFファイルです(限りのthatsと彼らは同じディレクトリにいるようどのようにコード内のMDFファイルを見つけるIM)、しかし、私は別のマシン上でそれを実行しようとすると、私は接続エラーが発生します。

本当にありがとうございます。私は私の髪を引っ張っている!

+0

あなたは[コマンドライン](https://msdn.microsoft.com/en-gb/library/hh247716経由でインスタンスを作成、起動、停止および削除することができます。 aspx?f = 255&MSPPError = -2147217396)。しかし、これは、localDBがテストボックスにインストールされている場合にのみ機能します。 –

+0

申し訳ありませんが、私はすべてのSQLを手がかりにしていない、私は学ぶしようとしている、私のデータベースは "gameDatabase.mdf"と呼ばれ、テーブルは "gameDb"と呼ばれる私はコマンドラインを使用して作成時にインスタンスを呼び出すか? – MagicalMidge

+0

謝罪する必要はありません。インスタンス名は接続文字列と一致する必要があります。この場合、 '(LocalDB)\ MSSQLLocalDB'です。これがデフォルトのインスタンスです。常に利用可能でなければなりません。つまり、[ダウンロード](https://msdn.microsoft.com/en-us/library/hh510202.aspx?f=255&MSPPError=-2147217396)とLocalDBをインストールする必要があります。 LocalDbはエンジンを提供し、.mdfは構造と内容を持ちます。 –

答えて

0

これを遭遇する可能性のある人にとって、私はそれを解決した「修正」をあなたに知らせることができます。

ユーザーから "宛先データ"
謝罪する必要はありません。インスタンス名は接続文字列と一致する必要があります。この場合は、(LocalDB)\ MSSQLLocalDBです。これがデフォルトのインスタンスです。常に利用可能でなければなりません。つまり、LocalDBをダウンロードしてインストールする必要があります。 LocalDbはエンジンを提供し、.mdfは構造と内容を持ちます。

基本的に私はテストマシンにLocalDBをインストールしていませんでしたが、SQL Server Express 2016の基本バージョンにバンドルされていたという印象を受けました。

SQL Server Express 2016ダウンローダをダウンロードし、カスタムインストールを使用してそこから「LocalDb」を選択すると、SqlLoaclDb.MSIがダウンロードされ、再度実行する必要があります。他の試験機/環境でデータベースを逃すあなた多分

0

は、cmd> sqllocaldb create MsSsqlLocalDBでMSSqlLocalDBを作成してstartcreateスイッチを変更し、コマンドを再実行することができます。


を開始するには - あなたはあなたのneed to rename the v11 or v12 to (localdb)\mssqllocaldb

  • を開始する前共通 LocalDb SQLEXPRESS SQL Serverの接続エラーSQL Network Interfaces, error: 50 - Local Database Runtime error occurredを引き起こしている可能性が4つの問題は、あなたがservices runningを持っていけない、そこにあります
  • あなたは持っていません。firelwall portshereI - 私は最も簡単な、下記を行うことであることがわかったに構成
  • あなたのインストールがあり、
  • (ヘルプは、以下の手順があなたに素敵なきれいなスタートを与える)問題/破損しているあなたはrename the V11 or 12 to mssqllocaldb

ませんでした写真を添付し​​て手助けをします。

最初にインストールしている場合確認し、あなたはあなたができる、このステップが失敗した場合、CMDに

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore" を実行して、レジストリをチェックすることによってこれを行うことができますオプションdで削除コマンド> Sqllocaldb.exe D "someDb"
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

SqlLOCALDb_edited.png

関連する問題