【问题标题】:Connection string - Keyword not supported: 'initial catalog'连接字符串 - 不支持关键字:“初始目录”
【发布时间】:2011-12-30 08:19:27
【问题描述】:

我正在使用 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");
        }

异常详细信息:System.ArgumentException:不支持关键字:“初始目录”。

【问题讨论】:

  • 您使用的是什么数据库服务器(SQL Server、MySQL、Postgresql 等)?

标签: asp.net .net asp.net-mvc database-connection connection-string


【解决方案1】:

在这里查看: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);

【讨论】:

  • 嗅探,我花了 3 个小时试图弄清楚这一点。干杯,伙计!让我不再头疼了。
【解决方案2】:

啊啊啊啊啊啊!!!!!! 这是我第二次遇到这种情况,grrrh - 浪费了几个小时。

错误:

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

堆栈跟踪:

在 System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable 可解析,字符串连接字符串,布尔构建链,哈希表 同义词,布尔 firstKey)在 System.Data.Common.DbConnectionOptions..ctor(字符串连接字符串, Hashtable 同义词,布尔值 useOdbcRules) 在 System.Data.SqlClient.SqlConnectionString..ctor(字符串 连接字符串)在 System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(字符串 connectionString, DbConnectionOptions 以前)在 System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey 键,DbConnectionPoolGroupOptions poolOptions,DbConnectionOptions& 用户连接选项)在 System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey 键)在 System.Data.SqlClient.SqlConnection.set_ConnectionString(字符串值) 在 System.Data.SqlClient.SqlConnection..ctor(字符串连接字符串, 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" />

看起来不错吧? 错误

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

初始目录;我的数据库

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

初始目录=我的数据库

正确的连接字符串:

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

【讨论】:

    【解决方案3】:

    你可以使用下面的代码

    配置文件:

       <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】:

      我在 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。

      【讨论】:

      • 原来对我来说就是这种情况...谢谢伙计!
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        我收到错误是因为我的连接字符串中有 db(而不是“数据库”)。

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

        更新上述连接字符串(db to Database)应该可以解决问题。下面是工作连接字符串。

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

        【讨论】:

        • 当我尝试使用“donet ef migrations remove”删除迁移时遇到了同样的问题。我正在实施 Microsoft.EntityFrameworkCore.SqlServer v5.0.4。我收到了这个错误,因为正如@Risgu Ranjan 提到的,连接字符串是错误的。就我而言,我有“初始目录”而不是数据库。在我将“初始目录”更改为数据库后它起作用了。感谢您分享您的想法。
        【解决方案7】:

        我建议:


        1. 您可以清楚地检查您的连接字符串格式,尤其是“和”。就我而言,这是:


        1. 您可以尝试再次通过 EF 生成 db。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-09
          • 2018-07-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多