7

Estoy utilizando la entidad de base de datos de Webmatrix.data para crear una conexión de base de datos, pero no me gusta mi cadena de conexión. Lo estoy ejecutando desde MVC ASP.net.Cadena de conexión - Palabra clave no admitida: 'catálogo inicial'

He intentado cambiarlo a servidor/base de datos, pero sigue teniendo errores. ¿Dónde estoy equivocado?

 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"); 
     } 

Detalles de excepciones: System.ArgumentException: Palabra clave: no soportado 'catálogo inicial'.

+0

¿Qué servidor de base de datos (SQL Server, MySQL, Postgresql, etc.) está utilizando? –

Respuesta

13

cheque aquí: Database.OpenConnectionString Method (String, String)

intenta especificar el nombre del proveedor como segundo parámetro, a partir del ejemplo de MSDN:

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

var providerName = "System.Data.SqlClient"; 

var db = Database.OpenConnectionString(connectionString, providerName); 
+1

Olfa, pasé 3 horas tratando de resolver esto. ¡Salud, ma hombre! Me salvó más dolor de cabeza. – Doomsknight

3

Usted puede usar el siguiente código

fichero de configuración:

<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"); 
9

ARRRRHHHHHH !!!!! Esta es la segunda vez que me encuentro con esto, grrrh - desperdiciamos horas en eso.

error:

El servidor encontró un error al procesar la solicitud. El mensaje de excepción es 'Palabra clave no compatible:' catálogo inicial; MyDatabase; fuente de datos '.'. Vea los registros del servidor para más detalles. El seguimiento de la pila excepción es:

StackTrace:

at System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey) at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Hashtable synonyms, Boolean useOdbcRules) at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) at System.Data.SqlClient.SqlConnection..ctor(String connectionString, SqlCredential credential)

Esta fue mi cadena de conexión defectuosa:

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

Se ve bien ¿verdad? MAL

Finalmente manchada del punto y coma aquí:

Initial Catalog;MyDatabase

para corregirlo, he utilizado un signo igual:

Initial Catalog=MyDatabase

La cadena de conexión correcta:

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

0

Sugiero:


  1. Puede comprobar el formato de cadena de conexión con claridad ayuda especialmente " y".En mi caso esto es:


  1. Puede intentar generar db por EF de nuevo.
Cuestiones relacionadas