2016-06-14 3 views
0

Visual Basic 2010 프로그램을 만들고 데이터베이스로 sqlserver compact를 사용하고 있습니다. 저는 "Year2015"와 "Year2016"이라는 폴더 두 개를 가지고 있습니다. 폴더는 프로그램이있는 동일한 위치에 있습니다. 두 폴더 모두 자체적으로 "MyData.sdf"라는 데이터베이스가 있습니다. "MyData.sdf"모두 동일한 테이블 등이 있습니다. 이와 비슷한 작업을하려고합니다. 사용자가 "Year2015"를 선택하면 프로그램은 "Year2015"폴더에있는 "MyData.sdf"데이터로 실행되기 시작합니다 사용자가 "Year2016"을 선택하면 프로그램은 "Year2016"폴더에있는 "MyData.sdf"의 데이터로 실행되기 시작합니다. 프로그래밍 방식으로 데이터 소스 주소를 변경하려고합니다. 그걸 검색 한 그물. 몇 가지 설명이 있지만 찾을 수있는 코드가 없습니다. 이것이 나쁜 질문이라면 유감스럽게 생각합니다.Pogrammatically 데이터베이스 위치 변경

+0

저는 sqlserver compact를 사용했습니다. 나는 데이터베이스가 좋지 않다. 프로그램이 온라인으로 작동하지 않습니다. 그냥 SDF 파일에서 데이터를 받고. – user747699

+0

app.config/web.config 파일에서 두 개의 연결 문자열을 사용하고 else 문과 같이 다른 폴더 데이터베이스에서 데이터를 가져 오는 드롭 다운 선택 Year2015/Year2016을 기반으로 두 연결 문자열을 사용할 수 있습니다. –

+0

사용자 드롭 다운 메뉴를 변경하고 else 문으로 Year2015를 선택하십시오. 하지만 나는 어떻게 프로그램이 2015 년 폴더에서 databese 작업을 시작하게 만들지 모르겠다. 나는 가능한 한 데이터베이스 위치를 변경하기 위해 myconnection.source = CurrentDir & "Year2015/MyData.sdf"와 같은 코드를 의미한다. – user747699

답변

0

마지막으로이 문제에 대한 내 자신의 코드를 만듭니다. VB2010 및 SQL Server Compact를 사용하고 활성 폼의 데이터 소스를 변경하려는 사람들에게도 공유하고 싶습니다. 코드는 다음과 같습니다.

Dim sConnectionString As String 
sConnectionString = "Data Source=" & My.Computer.FileSystem.CurrentDirectory & "\Year2015\MyData.sdf" 
TableAdapterManager.Connection.ConnectionString = sConnectionString 

이렇게하면 활성 양식의 데이터 소스가 변경됩니다. 다른 양식은 기본 소스를 계속 사용합니다.

1

데이브 PINAL이 물건의 천재이며, 나는이 매우 주제에 대한 자신의 블로그를 읽을 일이 :

ALTER DATABASE TestDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO

- 분리 DB

EXEC MASTER.dbo.sp_detach_db @dbname = N'TestDB' GO

- 이동 Loc1에서 Loc2까지의 MDF 파일 - Re-Attached DB

CREATE DATABASE [TestDB] ON (FILENAME = N'F:\loc2\TestDB.mdf'), (FILENAME = N'F:\loc2\TestDB_log.ldf') FOR ATTACH GO

참고 : 댓글 섹션도 훌륭합니다.

* 원본 스크립트는 PINAL에서 왔습니다. http://blog.sqlauthority.com/2012/10/28/sql-server-move-database-files-mdf-and-ldf-to-another-location/

+0

감사합니다. Dave Pinal이 내가 원하는 것을 분명하게 설명해주었습니다. 그러나 다른 프로그래밍 언어로. 코드를 vb2010 express로 변경하려고 삼진. 그러나 때때로 오류가 발생합니다. – user747699

+0

어떤 오류가 있습니까? 게시 할 수 있습니까? –

+0

Dave Pinal의 코드를 작성할 때 비주얼 베이직으로 작성되지 않았기 때문에 비주얼 베이직 코드에 밑줄을 긋습니다. 임 그것을 vb2010 lang으로 바꾸려고합니다. 내가 할 수 있다면, 너무 좋을거야 ... – user747699