I can't get a Sql Server localdb connection to

2019-03-12 02:53发布

I have a C# console application written using Visual Studio 2012. In the application I am using a Sql Server localdb connection to a database to store information. This is working fine on several computers, all of which have Visual Studio installed.

I would like to deploy a program that only has to install the Sql Server Express LocalDB, and not the larger Sql Server Express. However, my application is not running on the target computers. I have installed Sql Server Express LocalDB 2014 on a target computer. I can, using a command line, run commands using sqllocaldb to verify that it is installed and running.

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

When I run my application on that same target computer, however, I get the following error.

C:\Users\someuser\Desktop\Debug>Testing_Console
11:21:07,912 [1] INFO TestingConsole.Program - Current Directory is C:\Users\someuser\Desktop\Debug
Extra Info: (null)


Unhandled Exception: System.Data.SqlClient.SqlException: 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: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. Cannot create an automatic instance. See the Windows Application event log for error details.

The following is the beginning of my app.config file, where I am defining the connection string. I have tried putting in the direct file path to the LM file, but that didn't fix the issue. That was to be expected, however, as the program works from any directory on the computers with Visual Studio installed.

<?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>

I don't know if the issue is related to only have SQL Server Express LocalDB 2014 installed. Can anyone tell me what my problem might be?

5条回答
走好不送
2楼-- · 2019-03-12 03:03

Using "Data Source=(LocalDB)\MSSQLLocalDB" also not worked form me. I had to access databasseusing "Data Source=(LocalDB)\V12.0" and for working that access to work I needed to run this command first "sqllocaldb create "v12.0". More details on this link https://dyball.wordpress.com/2014/04/28/sql-2014-localdb-error-cannot-connect-to-locaidbv12-o/

查看更多
三岁会撩人
3楼-- · 2019-03-12 03:07

You'll want to make sure that you've installed .NET Framework 4.0 and, equally as importantly, the .NET Framework 4.0.2 update (KB #2544514).

Once your system is up to date, you can download the SqlLocalDb installer from:

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

查看更多
时光不老,我们不散
4楼-- · 2019-03-12 03:08

The problem is when you have both Visual Studio 2013 and Visual Studio 2017 there are two versions of loacal database installed.

Visual Studio 2013 - (localdb)\v11.0 Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) Oct 19 2012 13:38:57 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows NT 6.2 (Build 9200: )

Visual Studio 2017 - (localdb)\MSSQLLOCALDB Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) Oct 28 2016 18:17:30 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows 10 Pro 6.3 (Build 17134: )

Before installing Visual Studio 2017 I was able to connect to (localdb)\v11.0, but after installing Visual Studio 2017 I am not able to connect to previous version of SQL Express (localdb)\v11.0, but I am able to connect to (localdb)\MSSQLLOCALDB using C#. I am able to connect to both of them from SQL Server Management Studio without any issues.

查看更多
别忘想泡老子
5楼-- · 2019-03-12 03:16

The problem was related to having Sql Server Express LocalDB 2014 installed instead of 2012. With that version MS has changed the connection string requirements. Instead of Data Source=(LocalDB)\V11.0, the connection string is Data Source=(LocalDB)\MSSQLLocalDB. After changing my connection string the program is running correctly on a computer that only has the LocalDB 2014 installed. Here is a link to an article about it: https://connect.microsoft.com/SQLServer/feedback/details/845278/sql-server-2014-express-localdb-does-not-create-automatic-instance-v12-0

also

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

查看更多
冷血范
6楼-- · 2019-03-12 03:22

The build having connection string of (LocalDB)\v11.0 will work with the localDB ENU\x64\SqlLocalDB.MSI given on this link Download SqlLocalDB

I tried this on target system where no Visual Studio is installed. This build will connect with the database with only SqlLocalDB.msi installed. There is no need to install SqlExpress on target system.

查看更多
登录 后发表回答