使用ASP.net找不到连接字符串

时间:2017-05-24 05:35:39

标签: c# mysql asp.net

我试图让我的本地SQL数据库连接到我的ASP.Net项目,我尝试的任何工作都没有。 数据库名为cinemaDatabase,使用Windows身份验证。

在web.config中我有

   <connectionStrings>
    <add name="myDatabase" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=cinemaDatabase;Integrated Security=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

然后在cshtml页面中我有

@using WebMatrix.Data;

@{
    var db = Database.Open("myDatabase");
 }

我一直收到此错误

  

InvalidOperationException:连接字符串&#34; myDatabase&#34;不是   找到。 OpenNamedConnection

我在这里做错了什么?提前谢谢。

编辑 - 有了它的工作,不得不制作一个普通的SQL服务器而不是本地的MSSQLLocalDB,并将web.config中的数据源更改为。

然后在我的页面上使用此代码并立即连接。

@using WebMatrix.Data; 
@using System.Data.SqlClient; 

@{ 

    var connectionString = "Data Source=DESKTOP-58NGNQP;Initial Catalog=webDev;Integrated Security=True";
    var providerName = "System.Data.SqlClient";
    var db = Database.OpenConnectionString(connectionString, providerName);
}

1 个答案:

答案 0 :(得分:0)

我认为问题在于您的连接字符串。不幸的是,我现在没有附加 .mdf 文件的正常运行示例,但我相信这样的事情会为你完成这项工作,我抓住了这个来自MSDN's article on connection strings

的字符串
<add name="ConnectionStringName"
providerName="System.Data.SqlClient"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\DatabaseFileName.mdf;InitialCatalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True" />

这里有几个重要的事实:

  1. Data Source=(LocalDB)\v11.0 - 指定要使用的按需启动localdb实例。请注意,此字符串中的版本v11.0因安装而异,您应该找到适合您的字符串的版本。 (你应该能够在下面找到它)
  2. AttachDbFilename=|DataDirectory|\DatabaseFilename.mdf - 这告诉LocalDb加载该数据库文件。或者,localdb将数据库文件保留在用户主目录或某处的AppData目录中。
  3. Integrated Security=true - 连接字符串需要身份验证方案。两种可能的选项是集成安全性,它使用您的Windows凭据来尝试访问您的数据库,这适用于许多事情,LocalDb就是其中之一。另一种选择是使用sql身份验证和sql名称和密码进行连接。