连接字符串 - 关键字不受支持:'initial catalog'

25

我正在使用Webmatrix.data的Database实体来创建数据库连接,但它似乎不喜欢我的连接字符串。我是从MVC ASP.net运行它。

我已经尝试将其更改为服务器/数据库,但仍然出现相同的错误。我哪里做错了?

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

异常详情:System.ArgumentException:不支持关键字:"initial catalog"。


你正在使用哪个数据库服务器(SQL Server、MySQL、Postgresql等)? - kͩeͣmͮpͥ ͩ
7个回答

25

请检查此处:Database.OpenConnectionString方法(String,String)

尝试像MSDN示例中一样将提供程序名称指定为第二个参数:

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

var providerName = "System.Data.SqlClient";

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

3
嗅嗅,我花了3个小时试图弄清楚这个问题。谢谢你,伙计!救了我不少烦恼。 - IAmGroot

17

ARGHHHHH!!!!! 这已经是我第二次遇到这个问题了,浪费了很多时间。

错误信息:

服务器在处理请求时发生错误。异常消息为“不支持关键字:'initial catalog;MyDatabase;data source'”。有关更多详细信息,请参见服务器日志。异常堆栈跟踪如下:

堆栈跟踪:

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)

这是我的错误连接字符串:

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

看起来没问题,对吧? 错了

最终我发现这里有个分号:

Initial Catalog;MyDatabase

为了纠正它,我用了一个等号:

Initial Catalog=MyDatabase

正确的连接字符串:

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


9
我在 IdentityServer 的一个快速入门示例中遇到了错误。
不得不替换。
services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));

使用

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

使用

Microsoft.EntityFrameworkCore.SqlServer

因为我使用的数据库显然是Microsoft SQL Server而不是SQLite。


这对我来说成真了...谢谢,伙计! - Mosia Thabo

6
你可以使用以下代码
配置文件:
   <connectionStrings>
   <add name="con" connectionString="Data Source=ServerName;Initial Catalog=master;Integrated Security=SSPI;" providerName="System.Data.SqlClient"></add>
  </connectionStrings>

cshtml文件:

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

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

4

对于我来说,我遇到了这个错误是因为我使用的是一个模板解决方案。我不知道的是,该模板仅安装了对sqlite的支持。我必须安装Microsoft.EntityFrameworkCore.SqlServer并将代码中的调用从UseSqlite更改为UseSqlServer


2

你需要检查你的连接字符串。

我收到了错误信息,因为我的连接字符串中有“db”(应该是“Database”)。

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

更新上面的连接字符串(将 db 更改为 Database )应该能解决问题。下面是可用的连接字符串。

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

当我尝试使用“donet ef migrations remove”删除迁移时,我遇到了同样的问题。我正在实现Microsoft.EntityFrameworkCore.SqlServer v5.0.4。正如@Risgu Ranjan所提到的那样,我因为连接字符串错误而出现了这个错误。在我的情况下,我有“Initial Catalog”而不是Database。在我将“Initial Catalog”更改为Database后,它起作用了。感谢您分享您的想法。 - omostan

0

我的建议是:


  1. 你可以清楚地检查你的连接字符串格式,特别是 " 和 "。在我的情况下,它是这样的:


  1. 你可以尝试再次使用 EF 生成数据库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接