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



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

我试着把它改为服务器/数据库,但仍然错误相同。我哪里做错了?

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

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

check here: Database。OpenConnectionString Method (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);

ARRRRHHHHHH!!!!!这是我第二次遇到这种情况,grgrrh -浪费时间在这上面。

错误:

服务器在处理请求时遇到错误。异常消息是"关键字不支持:'初始目录;MyDatabase;数据源'."。有关详细信息,请参阅服务器日志。异常堆栈跟踪如下:

异常堆栈

:

System.Data.Common.DbConnectionOptions.ParseInternal(散列表connectionString, Boolean buildChain, Hashtable同义词,布尔firstKey) atSystem.Data.Common.DbConnectionOptions . .connectionString男星(字符串,Hashtable同义词,布尔值useodbrules) atSystem.Data.SqlClient.SqlConnectionString . .男星(字符串connectionString)System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(字符串连接字符串,DbConnectionOptions先前)System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup (DbConnectionPoolKey键,DbConnectionPoolGroupOptions,池选项,DbConnectionOptions&userConnectionOptions)System.Data.SqlClient.SqlConnection.ConnectionString_Set (DbConnectionPoolKey键),System.Data.SqlClient.SqlConnection。set_ConnectionString(字符串值)在System.Data.SqlClient.SqlConnection . .connectionString男星(字符串,SqlCredential凭据)

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

<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;

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

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

我在一个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

可以使用下面的代码

配置文件

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

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

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

我收到了错误,因为我的连接字符串中有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"

我建议:


  1. 您可以清楚地检查您的连接字符串格式,特别是"one_answers"。在我的例子中,这是:


你可以尝试用EF重新生成数据库。

最新更新