2009-07-16 2 views
1

에 실패했습니다.시도 내가 배포에 아주 좋은 아니에요 나는이 문제에 직면하고있어

나는 데이터베이스 파일이 Customerdb.mdf 인 vb.net에 windows 응용 프로그램을 만들었습니다.

데이터베이스를 선택했으며 속성에서 Embedded Resource 옵션을 선택했습니다.

나는 다음과 같은 연결을 사용하고 있습니다 :

Dim constring As String 
constring = Application.StartupPath.ToString() + "\Customerdb.mdf" 
Dim con = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=" + constring + ";Integrated Security=True;User Instance=True") 

내 문제는 내가 설정을 설치 한 후 데이터베이스에 액세스 할 수 없다는 것입니다.

는 "파일 C에 대한 자동 명명 된 데이터베이스에 연결하려고 시도 : 다음과 같은 오류가 난 데이터베이스에 액세스하려고 할 때마다 발생합니다. 앱 \ Customerdb.mdf \ \ 프로그램 파일이 실패를 데이터베이스를 같은과 이름이 없거나 지정된 파일을 열 수 없거나 UNC 공유에 있습니다. "

설치 한 것처럼 보이지만 응용 프로그램이 데이터베이스에 액세스 할 수 없습니다.

연결에 어떤 문제가 있다고 말해 주시겠습니까?

도움이 매우 감사 할 것입니다. 미리 감사드립니다.

답변

1

임베디드 리소스 옵션을 선택했습니다.

즉, 데이터베이스 파일은 생성 된 * .exe 파일에 리소스로 포함됩니다. 파일 시스템에서 별도의 파일이 아닙니다. 이 코드로 만들려는 파일 이름은 Application.StartupPath.ToString() + "\Customerdb.mdf"입니다.

이 문제를 해결하려면, 당신은 몇 가지 옵션이 있습니다

  • 변경 Embedded Resource에서 Content로하고 파일이 존재하는 경우에 "항상 복사"
  • 확인을 말해하기 전에 디스크에 바이트 배열을 쓰기 그렇지 않은 경우 데이터베이스 열기
  • Embedded Resource에서 Content으로 변경하고 배포 프로젝트를 Application Data 폴더에 넣도록 설정하십시오.

그 중 마지막으로 수행해야하며 응용 프로그램과 함께 SQL Server Express를 배포하는 것을 잊지 마십시오.

마지막으로 Sql Server Express는 단일 사용자 데스크톱 데이터베이스로 사용하기에 적합하지 않습니다. SQL Server Compact Edition, sqlite 또는 Access와 같은 데스크톱 (또는 "프로세스") 엔진을 사용해야합니다.

+0

답장을 보내 주셔서 감사합니다. 첫 번째 요점은 있지만, 시도했기 때문에 동일한 오류 메시지가 표시되어 샘플을 제공 할 수 있습니다. "content"옵션을 사용하면 설치 후 데이터베이스 파일이 여전히 응용 프로그램 폴더에 표시되지 않습니다. 사용하는 경로가 올바른 것으로 가정합니다. 답장을 보내 주셔서 감사합니다. –

+0

여전히 배포 프로젝트에 수동으로 추가해야합니다. '콘텐츠'로 설정하면 프로젝트에서 사용할 수있게되므로 추가 할 수 있습니다. –

+0

고마워,이게 해줄 게 –

관련 문제