2013-11-03 8 views
0

Visual Studio 2012를 사용합니다. "구성 요소 추가"기능을 사용하여 데이터베이스를 만들었습니다. 나는 그것에 연결하려고한다데이터베이스에 연결할 수 없음

class DBManager 
{ 
    private SqlConnection conn = new SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\\Users\\somepath\\Database1.mdf;Integrated Security=True"); 

    public DBManager() 
    { 
     using (conn) 
     { 
      conn.Open(); 
     } 
    } 

그리고 나는 conn.Open() 라인에서 SQL 예외를 얻는다. System.Data.SqlServerCe을 사용하고 연결 문자열을 변경하려고 시도한 후에도 열 수 없거나 손상된 파일에 대해서는 동일한 예외가 발생합니다.

+1

블록을 사용하는 것은 심오합니다. 사용 블록에 "새"를 넣으면 연결이 끊어 지거나 연결이 끊어지지 않게됩니다. 그건 제쳐두고, 파일이 당신이 말한 곳에 있는지 확인 했습니까? – nvoigt

+0

http://www.connectionstrings.com/ - '너프가 말했다. (SQL Server 연결 문자열에 파일 이름이 없어야 함) – Hogan

+1

왜 LocalDB와 AttachDbFileName을 사용하고 있습니까? LocalDB 인스턴스를 사용하는 경우 데이터베이스가 이미 연결되어 있으면 안됩니다 (이 경우 연결 문자열에서 데이터베이스의 실제 경로를 지정할 이유가 없습니다). –

답변

1

당신이 당신의 연결 문자열은 다음과 같이한다 SQL 서버를 사용하는 경우

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True; 

가서 자세한 내용은 connectionstrings.com하기 - 다른 DB를 사용하는 경우 또는.

+0

이상한, DB 속성에 주어진 문자열이 맞는 것 같아요. 나는 그것을 시도 할 것이다. – hubert

0

첨부하려는 데이터베이스가 이미 연결되어있는 경우 연결의 매개 변수 AttachDbFilename=C:\\Users\\somepath\\Database1.mdf은 쓸모가 없습니다. 이를 제거하면 인스턴스의 기본 데이터베이스에 연결됩니다.

파일을 열 수 없거나 손상 되었기 때문에 오류가 발생하는 경우 무결성을 검사하고 SQL Server Management Studio를 사용하여 파일을 첨부 한 다음 mdf 파일을 변경하십시오. 파일에 오류가 있으면 코드가 작동하지 않습니다.

관련 문제