2017-05-24 1 views
0

내 로컬 SQL 데이터베이스를 ASP.Net 프로젝트에 연결하려고하고 있는데 아무 것도 작동하지 않습니다. 데이터베이스의 이름은 cinemaDatabase이며 Windows 인증을 사용합니다. Web.config의에서ASP.net에서 연결 문자열을 찾을 수 없습니다.

나는 내가이 오류를

InvalidOperationException이가 계속

@using WebMatrix.Data; 

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

가지고 cshtml 페이지에서

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

그런 다음이 : 연결 문자열 "MYDATABASE을"이었다 아니 가 발견되었습니다. OpenNamedConnection

여기서 내가 뭘 잘못하고 있니? 미리 감사드립니다.

편집 - 로컬 MSSQLLocalDB 대신 일반 SQL 서버를 만들고 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

저는 연결 문자열에 문제가 있다고 생각합니다. 불행하게도, 내가 첨부 의 .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 이름 및 암호를 사용하여 연결하는 것입니다.
+0

링크를 제공해 주셔서 감사합니다. 보통의 SQL 데이터베이스를 만들었고 이제는 web.config에서 같은 코드가 작동합니다. – ScruffTheJanitor

관련 문제