web-dev-qa-db-fra.com

Chaîne de connexion - Mot clé non pris en charge: "catalogue initial".

J'utilise l'entité Database de Webmatrix.data pour créer une connexion à une base de données, mais cela n'aime pas ma chaîne de connexion. Je l'exécute à partir de MVC ASP.net. 

J'ai essayé de le changer en serveur/base de données, mais les erreurs restent les mêmes. Où vais-je mal? 

        using (var db = Database.OpenConnectionString(@"Data Source=MY-HP\Serv;Initial Catalog=MyDBSQL;User ID=sa;Password=password"))
        {
            var items = db.Query("SELECT * FROM TaskPriority");
        }

Détails de l'exception: System.ArgumentException: Mot clé non pris en charge: "catalogue initial".

9
Doomsknight

vérifier ici: Méthode Database.OpenConnectionString (String, String)

essayez de spécifier le nom du fournisseur en tant que deuxième paramètre, à partir de l'exemple MSDN:

var connectionString = "Data Source=.\\SQLExpress;Initial Catalog=SmallBakery;Integrated Security=True";

var providerName = "System.Data.SqlClient";

var db = Database.OpenConnectionString(connectionString, providerName);
15
Davide Piras

ARRRHHHHHHH !!!!! C’est la deuxième fois que je rencontre des heures perdues, grrrh.

Erreur:

Le serveur a rencontré une erreur lors du traitement de la demande. Le message d'exception est "Mot clé non pris en charge:" catalogue initial; MyDatabase; source de données ".". Voir les journaux du serveur pour plus de détails. La trace de la pile des exceptions est:

Trace de la pile:

at System.Data.Common.DbConnectionOptions.ParseInternal (Hashtable paramétrable, String connectionString, Boolean buildChain, Hashtable synonymes, Boolean firstKey) à System.Data.Common.DbConnectionOptions. .ctor (String connectionString, synonymes de tableau de hachage, booléen useOdbcRules) à System.Data.SqlClient.SqlConnectionString..ctor (String connectionString) à Système. Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions (String ConnectionString, DbConnectionOptions précédente) de System.Data.Provider. .] userConnectionOptions) à System.Data.SqlClient.SqlConnection.ConnectionString_Set (clé DbConnectionPoolKey ) à System.Data. .] à System.Data.SqlClient.SqlConnection..ctor (St ring connectionString, Identifiant SqlCredential)

C'était ma chaîne de connexion défectueuse:

<add name="Production" connectionString="Password=Secret;Persist Security Info=True;User ID=MyUserID;Initial Catalog;MyDatabase;Data Source=aquickborwnfoxjumpedover.us-west-2.rds.amazonaws.com,1433" providerName="System.Data.SqlClient" />

Ça a l'air bien non? FAUX

Finalement, j'ai repéré le point-virgule ici: 

Catalogue initial; Ma base de données 

Pour le corriger, j'ai utilisé un signe égal: 

Catalogue initial = MyDatabase 

La chaîne de connexion correcte:

<add name="ConnString" connectionString="Password=Secret;Persist Security Info=True;User ID=MyUserID;Initial Catalog=MyDatabase;Data Source=aquickborwnfoxjumpedover.us-west-2.rds.amazonaws.com,1433" providerName="System.Data.SqlClient" />

12
Jeremy Thompson

Vous pouvez utiliser le code ci-dessous

Fichier de configuration:  

   <connectionStrings>
   <add name="con" connectionString="Data Source=ServerName;Initial Catalog=master;Integrated Security=SSPI;" providerName="System.Data.SqlClient"></add>
  </connectionStrings>

cshtmlfile:

var db = Database.Open("con");

var selecteddata = db.Query("select * from movie");
5
user2384449

Je suggère:


  1. Vous pouvez vérifier clairement le format de votre chaîne de connexion, notamment "et". Dans mon cas c'est:


  1. Vous pouvez essayer de générer à nouveau la base de données par EF.
0
Tien Tran

Pour moi, je recevais cette erreur parce que j'utilisais une solution basée sur un modèle. À l'insu de moi, le modèle n'installait que le support de sqlite. J'ai dû installer Microsoft.EntityFrameworkCore.SqlServer et changer les appels dans mon code de UseSqlite à UseSqlServer.

0
Helzgate