Connection string - Keyword not supported: 'initial catalog'
Asked Answered
K

7

26

I am using Webmatrix.data's Database entity to create a database connection, however it doesnt like my connection string. I am running it from MVC ASP.net.

Ive tried changing it to server / database, but still errors the same. Where am I going wrong?

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

Exception Details: System.ArgumentException: Keyword not supported: 'initial catalog'.

Kenny answered 16/11, 2011 at 11:13 Comment(1)
What database server (SQL Server, MySQL, Postgresql, etc) are you using?Monachism
C
26

check here: Database.OpenConnectionString Method (String, String)

try to specify the provider name as second parameter, from the MSDN example:

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

var providerName = "System.Data.SqlClient";

var db = Database.OpenConnectionString(connectionString, providerName);
Chyou answered 16/11, 2011 at 11:18 Comment(1)
Sniff, i spent 3 hours trying to figure this out. Cheers ma man! Saved me more headache.Kenny
D
20

ARRRRHHHHHH!!!!! This is the second time I've run into this, grrrh - wasted hours on it.

Error:

The server encountered an error processing the request. The exception message is 'Keyword not supported: 'initial catalog;MyDatabase;data source'.'. See server logs for more details. The exception stack trace is:

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)

This was my faulty connection string:

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

Looks good right? WRONG

Eventually I spotted the semi-colon here:

Initial Catalog;MyDatabase

To correct it, I used an equal sign:

Initial Catalog=MyDatabase

The correct connection string:

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

Disproportionate answered 21/9, 2015 at 3:40 Comment(0)
E
9

I ran into the error in one of the IdentityServer quickstarts.

Had to replace

services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));

With

services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

Using

Microsoft.EntityFrameworkCore.SqlServer

Because obviously my DB was a Microsoft SQL Server and not SQLite.

Eleusis answered 26/10, 2020 at 8:3 Comment(1)
This turned out to be the case for me... Thank you mate!Sisely
P
6

You can use the below code

Config file :

   <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");
Phocis answered 29/9, 2013 at 14:50 Comment(0)
S
4

For me I was getting this error because I was using a templated solution. Unbeknownst to me the template only installed support for sqlite. I had to install Microsoft.EntityFrameworkCore.SqlServer and change the calls in my code from UseSqlite to UseSqlServer.

Smoothie answered 6/2, 2019 at 14:26 Comment(0)
C
2

You need to check your connection string.

I received the error because I had db(instead of 'Database') in my connection string.

 "DevConnection": "server=DEL1-XX-XXXX;db=DonationDb;user=sa;password=XXXX"

Updating the above connection string(db to Database) should solve the problem. Below is the working connection string.

 "DevConnection":"server=DEL1-XX-XXXX;Database=DonationDb;user=sa;password=QwerXXXX"
Chesnut answered 18/2, 2021 at 4:33 Comment(1)
I had this same problem when I tried to remove migrations with "donet ef migrations remove". I was implementing Microsoft.EntityFrameworkCore.SqlServer v5.0.4. I got this error because as @Risgu Ranjan mentioned, the connection string was wrong. In my case I had "Initial Catalog" instead of Database. It worked after I changed "Initial Catalog" to Database. Thanks for sharing your idea.Sarcomatosis
C
0

I suggest:


  1. You can check your connection string format clearly especialy " and ". In my case this is:


  1. You may try generate db by EF again.
Characterization answered 10/12, 2017 at 12:37 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.