web-dev-qa-db-ja.com

SqlServer ExpressがインストールされていないコンピューターでSql Server localdb接続が機能しない

Visual Studio 2012を使用して記述されたC#コンソールアプリケーションがあります。アプリケーションでは、データベースへのSql Server localdb接続を使用して情報を保存しています。これは、Visual Studioがインストールされている複数のコンピューターで正常に動作しています。

大規模なSql Server Expressではなく、Sql Server Express LocalDBをインストールするだけのプログラムを展開したいと思います。ただし、ターゲットコンピューターでアプリケーションが実行されていません。ターゲットコンピューターにSql Server Express LocalDB 2014をインストールしました。コマンドラインを使用して、sqllocaldbを使用してコマンドを実行し、インストールおよび実行されていることを確認できます。

C:\Users\someuser\Desktop\Debug>sqllocaldb v
Microsoft SQL Server 2014 (12.0.2000.8)`

ただし、同じターゲットコンピューターでアプリケーションを実行すると、次のエラーが発生します。

C:\ Users\someuser\Desktop\Debug> Testing_Console
11:21:07,912 [1] INFO TestingConsole.Program-現在のディレクトリはC:\ Users\someuser\Desktop\Debugです
追加情報:(null)


未処理の例外:System.Data.SqlClient.SqlException:SQL Serverへの接続の確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。 (プロバイダー:SQLネットワークインターフェイス、エラー:50-ローカルデータベースランタイムエラーが発生しました。自動インスタンスを作成できません。エラーの詳細については、Windowsアプリケーションイベントログを参照してください。

以下は、接続文字列を定義しているapp.configファイルの始まりです。 LMファイルへの直接フ​​ァイルパスを入力しようとしましたが、それで問題は解決しませんでした。ただし、プログラムはVisual Studioがインストールされているコンピューター上の任意のディレクトリから機能するため、これは予想されることでした。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <connectionStrings>
    <add name="KomoLM_Console.Properties.Settings.LMConnectionString"
      providerName="System.Data.SqlClient"
      connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\LM.mdf;Integrated Security=True;MultipleActiveResultSets=True"
 />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>

問題がSQL Server Express LocalDB 2014のインストールのみに関連しているかどうかはわかりません。誰が私の問題が何かを教えてもらえますか?

24
MDig

この問題は、2012年ではなくSql Server Express LocalDB 2014がインストールされていることに関連していました。そのバージョンで、MSは接続文字列の要件を変更しました。 Data Source=(LocalDB)\V11.0の代わりに、接続文字列はData Source=(LocalDB)\MSSQLLocalDBです。接続文字列を変更した後、LocalDB 2014のみがインストールされているコンピューターでプログラムが正しく実行されています。これに関する記事へのリンクは次のとおりです。 https://connect.Microsoft.com/SQLServer/feedback/details/845278/sql-server-2014-express-localdb-does-not-create-automatic- instance-v12-

また

http://msdn.Microsoft.com/en-us/library/hh510202(v = sql.120).aspx

29
MDig

「Data Source =(LocalDB)\ MSSQLLocalDB」を使用しても動作しませんでした。 「Data Source =(LocalDB)\ V12.0」を使用してデータバスにアクセスする必要があり、そのアクセスを機能させるには、まずこのコマンドを実行する必要がありました「sqllocaldb create "v12.0"。このリンクの詳細 https ://dyball.wordpress.com/2014/04/28/sql-2014-localdb-error-cannot-connect-to-locaidbv12-o/

7
Manoj Attal

.NET Framework 4.0、および同様に重要なこととして、.NET Framework 4.0.2アップデート(KB#2544514)をインストールしたことを確認する必要があります。

システムが最新の状態になったら、次からSqlLocalDbインストーラーをダウンロードできます。

http://www.Microsoft.com/en-us/download/details.aspx?id=29062

4
JaiderMendez

(LocalDB)\v11.0の接続文字列を持つビルドは、このリンクで指定されたlocalDB ENU\x64\SqlLocalDB.MSIで動作します Download SqlLocalDB

Visual Studioがインストールされていないターゲットシステムでこれを試しました。このビルドは、SqlLocalDB.msiのみがインストールされたデータベースに接続します。ターゲットシステムにSqlExpressをインストールする必要はありません。

2
Prashant Arora

問題は、Visual Studio 2013とVisual Studio 2017の両方がある場合、loacalデータベースの2つのバージョンがインストールされていることです。

Visual Studio 2013-(localdb)\ v11. Microsoft SQL Server 2012(SP1)-11.0.3000.0(X64)2012年10月19日13:38:57 Copyright(c)Microsoft Corporation Express Edition(64 -bit)Windows NT 6.2(ビルド9200:)

Visual Studio 2017-(localdb)\ MSSQLLOCALDB Microsoft SQL Server 2016(SP1)(KB3182545)-13.0.4001.0(X64)2016年10月28日18:17:30 Copyright(c)Microsoft Corporation Express Edition( 64ビット)Windows 10 Pro 6.3(ビルド17134:)

Visual Studio 2017をインストールする前に(localdb)\ v11.に接続できましたが、Visual Studio 2017をインストールした後、以前のバージョンのSQL Expressに接続できません(localdb )\ v11.ですが、C#を使用して(localdb)\ MSSQLLOCALDBに接続できます。 SQL Server Management Studioから問題なく両方に接続できます。

2
Bharath