web-dev-qa-db-fra.com

Je n'arrive pas à faire fonctionner une connexion localdb Sql Server sur un ordinateur sur lequel SqlServer Express n'est pas installé

J'ai une application console C # écrite à l'aide de Visual Studio 2012. Dans l'application, j'utilise une connexion localdb Sql Server à une base de données pour stocker des informations. Cela fonctionne bien sur plusieurs ordinateurs, qui ont tous installé Visual Studio.

Je voudrais déployer un programme qui n'a qu'à installer le Sql Server Express LocalDB, et non le plus grand Sql Server Express. Cependant, mon application ne s'exécute pas sur les ordinateurs cibles. J'ai installé Sql Server Express LocalDB 2014 sur un ordinateur cible. Je peux, à l'aide d'une ligne de commande, exécuter des commandes à l'aide de sqllocaldb pour vérifier qu'il est installé et en cours d'exécution.

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

Cependant, lorsque j'exécute mon application sur ce même ordinateur cible, j'obtiens l'erreur suivante.

C:\Users\someuser\Desktop\Debug> Testing_Console
11: 21: 07,912 [1] INFO TestingConsole.Program - Le répertoire actuel est C:\Users\someuser\Desktop\Debug
Informations supplémentaires: (null)


Exception non gérée: System.Data.SqlClient.SqlException: une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions à distance. (fournisseur: Interfaces réseau SQL, erreur: 50 - Une erreur d'exécution de la base de données locale s'est produite. Impossible de créer une instance automatique. Consultez le journal des événements de l'application Windows pour plus de détails sur l'erreur.

Ce qui suit est le début de mon fichier app.config, où je définis la chaîne de connexion. J'ai essayé de mettre le chemin d'accès direct au fichier LM, mais cela n'a pas résolu le problème. C'était à prévoir, cependant, car le programme fonctionne à partir de n'importe quel répertoire sur les ordinateurs sur lesquels Visual Studio est installé.

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

Je ne sais pas si le problème est lié à l'installation de SQL Server Express LocalDB 2014 uniquement. Quelqu'un peut-il me dire quel pourrait être mon problème?

24
MDig

Le problème était lié à l'installation de Sql Server Express LocalDB 2014 au lieu de 2012. Avec cette version, MS a modifié les exigences de chaîne de connexion. Au lieu de Data Source=(LocalDB)\V11.0, la chaîne de connexion est Data Source=(LocalDB)\MSSQLLocalDB. Après avoir modifié ma chaîne de connexion, le programme s'exécute correctement sur un ordinateur sur lequel seul LocalDB 2014 est installé. Voici un lien vers un article à ce sujet: https://connect.Microsoft.com/SQLServer/feedback/details/845278/sql-server-2014-express-localdb-does-not-create-automatic- instance-v12-

également

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

29
MDig

L'utilisation de "Data Source = (LocalDB)\MSSQLLocalDB" n'a pas fonctionné non plus. J'ai dû accéder à la base de données en utilisant "Data Source = (LocalDB)\V12.0" et pour travailler cet accès au travail, je devais d'abord exécuter cette commande "sqllocaldb create" v12.0 ". Plus de détails sur ce lien https : //dyball.wordpress.com/2014/04/28/sql-2014-localdb-error-cannot-connect-to-locaidbv12-o/

7
Manoj Attal

Vous devez vous assurer que vous avez installé .NET Framework 4.0 et, tout aussi important, la mise à jour .NET Framework 4.0.2 (KB # 2544514).

Une fois votre système à jour, vous pouvez télécharger le programme d'installation de SqlLocalDb à partir de:

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

4
JaiderMendez

Le build ayant une chaîne de connexion de (LocalDB)\v11.0 fonctionnera avec le localDB ENU\x64\SqlLocalDB.MSI donné sur ce lien Télécharger SqlLocalDB

J'ai essayé ceci sur le système cible où aucun Visual Studio est installé. Cette version se connectera à la base de données avec seulement SqlLocalDB.msi installée. Il n'est pas nécessaire d'installer SqlExpress sur le système cible.

2
Prashant Arora

Le problème est que lorsque vous avez à la fois Visual Studio 2013 et Visual Studio 2017, deux versions de la base de données loacale sont installées.

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

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

Avant d'installer Visual Studio 2017, je pouvais me connecter à (localdb)\v11., mais après avoir installé Visual Studio 2017, je ne pouvais pas me connecter à la version précédente de SQL Express (localdb )\v11., mais je peux me connecter à (localdb)\MSSQLLOCALDB en utilisant C #. Je peux me connecter à tous les deux à partir de SQL Server Management Studio sans aucun problème.

2
Bharath