7

Sto utilizzando l'entità Database di Webmatrix.data per creare una connessione al database, tuttavia non mi piace la mia stringa di connessione. Lo sto eseguendo da MVC ASP.net.Stringa di connessione - Parola chiave non supportata: 'catalogo iniziale'

Ive ha provato a cambiarlo su server/database, ma ha comunque gli stessi errori. Dove sto andando male?

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

Dettagli eccezione: System.ArgumentException: parola chiave non supportato: 'catalogo iniziale'.

+0

Quale server di database (SQL Server, MySQL, Postgresql, ecc.) Si sta utilizzando? –

risposta

13

controllo qui: Database.OpenConnectionString Method (String, String)

tenta di specificare il nome del fornitore come secondo parametro, dall'esempio MSDN:

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

var providerName = "System.Data.SqlClient"; 

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

Sniff, ho passato 3 ore cercando di capirlo. Ciao uomo! Mi ha salvato più mal di testa. – Doomsknight

3

È possibile utilizzare il codice qui sotto

file di configurazione:

<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 !!!!! Questa è la seconda volta che mi imbatto in queste ore sprecate.

Errore:

Il server ha rilevato un errore durante l'elaborazione della richiesta. Il messaggio di eccezione è 'Parola chiave non supportata:' catalogo iniziale, MyDatabase, origine dati '.'. Vedi i log del server per maggiori dettagli. Lo stack trace eccezione è:

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)

Questa era la mia stringa di connessione difettosa:

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

Sembra buono giusto? SBAGLIATO

Alla fine ho notato il punto e virgola qui:

Initial Catalog;MyDatabase

per correggerla, ho usato un segno di uguale:

Initial Catalog=MyDatabase

La stringa di connessione corretta:

<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

Suggerisco:


  1. È possibile controllare il formato stringa di connessione in modo chiaro especialy " e".Nel mio caso si tratta di:


  1. Si può provare a generare db da EF di nuovo.
Problemi correlati