2017-09-26 20 views
0

비슷한 문제의 게시물은 이미 here입니다. 그러나 내 문제는 개발 컴퓨터 자체에 있습니다.파일 이름이 유효하지 않습니다. 데이터베이스의 파일 이름을 확인하십시오. [File name = E : \ PractDB.sdf]

우리는 Motorola MC 65 (Window CE OS) 장치 용 데이터베이스 기반 응용 프로그램을 개발해야한다는 고객의 요구 사항이 있습니다.

다음 인터넷에서는 장치 (크래들에 연결된 장치)에서 빈 양식 응용 프로그램을 실행할 수있었습니다.

SQL Server Compact 데이터베이스를 만들고 테이블과 채워진 데이터를 추가했습니다. Visual Studio Server 탐색기를 통해 성공적으로 연결되었습니다.

그러나 코드를 통해 오류가 발생합니다.

다음은 내 연결 문자열 코드 :

SqlCeConnection con = new SqlCeConnection(); 

con.ConnectionString = @"Persist Security Info = False; 
         Data Source = 'E:\\PractDB.sdf'; 
         Password = 'password#123'; 
         File Mode = 'shared read'; 
         Max Database Size = 256; 
         Max Buffer Size = 1024"; 

con.Open(); 

친절하게 내가 놓친 거지 알려주세요. 연결 문자열에서 .sdf 데이터베이스 파일을 참조하는 올바른 방법은 무엇입니까?

+1

일반적으로 Windows CE에서는 드라이브 문자를 사용하지 않습니다. – ErikEJ

답변

0

선두가 @ 인 경우 이스케이프 처리되지 않은 문자열을 의미합니다. 이스케이프 문자가없고 백 슬래시 (\)는 특별한 작업을 수행하지 않습니다.

'E:\\PractDB.sdf' 

그 백 슬래시 문자 모두 당신의 문자열의 일부입니다 :

그래서 당신이있을 때. 그것들 중 하나를 제거하면, 정말로 그것이 올바른 경로와 파일이라는 가정하에, 괜찮을 것입니다.

또한 따옴표가 필요하지 않습니다. 따라서 최종 연결 문자열은 다음과 같습니다.

con.ConnectionString = @"Persist Security Info = False; 
         Data Source = E:\PractDB.sdf; 
         Password =password#123; 
         File Mode = shared read; 
         Max Database Size = 256; 
         Max Buffer Size = 1024;"; 

그러나 Google에서 해당 장치를 빠르게 확인하면 Windows Mobile 6.5가 실행되는 것으로 나타납니다. Windows Mobile에서 드라이브 문자를 사용하지 않았으므로 E:\ 드라이브가이 데이터베이스 또는 데이터베이스의 올바른 경로인지 의심의 여지가 있습니다. 안타깝게도 실제로 여기에 있어야 할 것에 대한 구체적인 정보를 제공하기 전에 앱 배포 방법에 대해 더 알고 있어야합니다.

0

Windows CE는 드라이브 문자를 사용하지 않습니다.

데이터베이스가 루트 폴더에 저장되어있는 경우 \PractDB.sdf을 사용하면됩니다.