26

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 のみがインストールされていることに関連しているかどうかはわかりません。誰が私の問題が何であるかを教えてもらえますか?

4

5 に答える 5

34

この問題は、2012 ではなく Sql Server Express LocalDB 2014 がインストールされていることに関連していました。そのバージョンでは、MS は接続文字列の要件を変更しました。の代わりにData Source=(LocalDB)\V11.0、接続文字列はData Source=(LocalDB)\MSSQLLocalDB. 接続文字列を変更した後、LocalDB 2014 のみがインストールされているコンピューターでプログラムが正しく実行されています。これに関する記事へのリンクは次のとおりです。 0

また

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

于 2015-01-07T22:53:00.820 に答える
8

「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/

于 2015-12-27T02:25:14.203 に答える
4

.NET Framework 4.0 と、.NET Framework 4.0.2 更新プログラム (KB #2544514) がインストールされていることを確認してください。

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

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

于 2015-07-10T16:31:22.130 に答える
2

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

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

于 2016-05-11T04:56:46.857 に答える