2010-03-07 2 views
0

으로 옮길 때 sql 예외가 발생합니다. Visual Studio 2008을 사용하는 C# Windows 프로그램에서 작업하고 있습니다. 일반적으로 내 USB 드라이브에 직접 학교에서 일합니다. 그러나 집에서 하드 드라이브의 폴더를 복사 할 때 데이터베이스에 쓸 때마다 SQL 예외가 처리되지 않습니다. conn.Open();에서 처리되지 않았습니다. 선. 여기에는 처리되지 않은 예외가 있습니다.프로젝트를 usb에서 c :

'L : \ system \ project \ the_project \ the_project \ bin \ Debug \ PatientMonitoringDatabase.mdf'데이터베이스가 이미 있습니다. 다른 데이터베이스 이름을 선택하십시오. 'C : \ Documents and Settings \ Administrator \ My Documents \ system \ project \ the_project \ the_project \ bin \ Debug \ PatientMonitoringDatabase.mdf'파일을 데이터베이스 'PatientMonitoringDatabase'로 첨부 할 수 없습니다. 내 연결 문자열을 말한다 때문에

이, 이상해 | DataDirectory를 |이 모든 드라이브에서 작동해야하므로 ... 여기 내 연결 문자열입니다 :

string connStr = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PatientMonitoringDatabase.mdf; " + 
       "Initial Catalog=PatientMonitoringDatabase; " + 
       "Integrated Security=True"; 
+2

중복 질문을 게시하지 마십시오! –

답변

1

나는 여기에 불만이 생각 로컬 SQL이 Server Express 설치에는 이미 PatientMonitoringDatabase가 연결되어 실행 중입니다.

SQL Server Management Studio Express (if not installed, download here)를 사용하여 localhost에 연결하고 기존 PatientMonitoringDatabase 데이터베이스를 제거/분리합니다. 영구 데이터베이스이든 실행중인 응용 프로그램 내에서만 활성 상태이든 관계없이 SQL Server 인스턴스에 연결된 동일한 이름의 데이터베이스 2 개를 동시에 가질 수는 없습니다.

+0

어떻게 localhost에 연결합니까? servername : "JELLO/SQLEXPRESS"에 연결되었습니다. aunthentication : windows 인증. 필자는 PatientMonitoringDatabase를 분리하고 데이터베이스에 쓸 때 또 다른 예외를 제공합니다. 내 다음 주석에서 예외를 인용하십시오. – jello

+0

"C : \ Documents and Settings \ Administrator \ My Documents \ system \ project \ the_project \ the_project \ bin \ Debug \ PatientMonitoringDatabase.mdf"파일에 대한 디렉토리 조회가 운영 체제 오류 5와 함께 실패했습니다. (접근이 금지되어있다.). 'C : \ Documents and Settings \ Administrator \ My Documents \ system \ project \ the_project \ the_project \ bin \ Debug \ PatientMonitoringDatabase.mdf'파일을 'PatientMonitoringDatabase'데이터베이스로 연결할 수 없습니다. – jello

+0

또는 SQL Management Studio Express를 실행할 때 오류가 발생한다는 사실과 관련이 있습니까? "처리되지 않은 예외가 응용 프로그램의 구성 요소에서 발생했습니다. 계속을 클릭하면 응용 프로그램에서이 오류를 무시하고 계속 시도합니다. 휘발성 상위 키 아래에 안정된 하위 키를 만들 수 없습니다." – jello

0

SQL Server Express 인스턴스에 데이터베이스 파일을 열 수있는 권한이 없기 때문에 두 번째 예외가 발생합니다. 파일에 대한 사용 권한은 무엇이며 실행중인 SQL Server는 무엇입니까?

+0

SQL 서버가 실행중인 것은 무엇을 의미합니까? 어떻게 그 정보를 찾습니까? – jello

+0

그리고 재밌 네요. 내 USB에서 실행할 때 모든 것이 잘 작동 하니까요. – jello

+0

.mdf 파일에 대한 사용 권한을 확인하십시오 (즉, 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 보안 탭을 선택하십시오). 가장 간단한 해결책은 아마도 "사용자"를 선택한 다음 "수정"항목이 선택되어 있는지 확인하는 것입니다. –

0

문제가 해결되었습니다. 저것에 행운이있어. Microsoft 포럼을 탐색하여 힌트를 얻었습니다. 힌트를 통해 "SQL Server 구성 관리자"를 열었으며 "SQL Server (SQLEXPRESS)"로 뭔가를해야했습니다. 그래서 나는 그것을 두 번 클릭하고 "Built-in Account"를 "Network Service"에서 "Local System"으로 변경했습니다. 그리고 지금은 그것이 작동합니다 .... 나는 운이 좋은 것 같아요 ...

하지만, 당신은 데이터베이스를 분리해야합니다. 그래서, thx Nick Craver

관련 문제