连接字符串 - 不支持关键字:'初始目录'

Doo*_*ght 12 .net asp.net asp.net-mvc connection-string database-connection

我使用Webmatrix.data的数据库实体来创建数据库连接,但它不喜欢我的连接字符串.我从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");
        }
Run Code Online (Sandbox Code Playgroud)

异常详细信息:System.ArgumentException:不支持关键字:'initial catalog'.

Dav*_*ras 18

在这里查看: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);
Run Code Online (Sandbox Code Playgroud)

  • 闻一闻,我花了 3 个小时试图弄清楚这一点。加油马哥!让我更头痛。 (3认同)

Jer*_*son 13

ARRRRHHHHHH !!!!! 这是我第二次碰到这个问题,浪费了几个小时.

错误:

服务器遇到处理请求的错误.异常消息是"不支持关键字:"初始目录; MyDatabase;数据源'.'.请参阅服务器日志以获取更多详 异常堆栈跟踪是:

堆栈跟踪:

在系统上的System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable,String connectionString,Boolean buildChain,Hashtable synonyms,Boolean firstKey)中的System.Data.Common.DbConnectionOptions..ctor(String connectionString,Hashtable synonyms,Boolean useOdbcRules). System.SData.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString,DbConnectionOptions previous)中的Data.SqlClient.SqlConnectionString..ctor(String connectionString)位于System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey键,DbConnectionPoolGroupOptions池选项,DbConnectionOptions和userConnectionOptions)处于System.Data.SqlClient.SqlConnection中的System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey键).System.Data.SqlClient.SqlConnection..ctor中的set_ConnectionString(String value)(String 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" />

看起来不错?错误

最后我在这里发现了分号:

初始目录; MyDatabase

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

初始目录= 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" />


Hei*_*aen 8

我在 IdentityServer 快速入门之一中遇到了错误。

不得不更换

services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));
Run Code Online (Sandbox Code Playgroud)

services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
Run Code Online (Sandbox Code Playgroud)

使用

Microsoft.EntityFrameworkCore.SqlServer
Run Code Online (Sandbox Code Playgroud)

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


小智 5

您可以使用以下代码

配置文件:

   <connectionStrings>
   <add name="con" connectionString="Data Source=ServerName;Initial Catalog=master;Integrated Security=SSPI;" providerName="System.Data.SqlClient"></add>
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

cshtmlfile:

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

var selecteddata = db.Query("select * from movie");
Run Code Online (Sandbox Code Playgroud)