2017-05-24 88 views
0

我试图让我的本地SQL数据库连接到我的ASP.Net项目,没有任何我尝试工作。 数据库被命名为cinemaDatabase及其使用Windows身份验证。未找到连接字符串与ASP.net

在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异常:连接字符串 “MYDATABASE” 是不是 找到。 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); 
} 
+0

您在生产或本地出现此错误? – Tushar

+0

只需在本地http://imgur.com/a/8Ef2b – ScruffTheJanitor

+0

您是否正在查看正确的web.config文件? –

回答

0

我认为问题出在您的连接字符串上。不幸的是,我没有一个运行实例的权利这一刻附加密度纤维板文件,但我相信这样的事情会为你做这项工作,我抓住这个字符串从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名字和密码来连接。
+0

感谢您的链接!我创建了一个普通的SQL数据库,现在web.config中的代码工作正常。 – ScruffTheJanitor