2017-05-24 87 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