2017-10-19 9 views
-1

나는 하나의 특정 위치에있을 수 있도록 폴더를 놓을 수 있도록 프로그램을 사용할 수 있도록 노력하고 있습니다. 이 내가 지금 사용하고 연결 문자열입니다C# 데이터베이스 연결 SQL

string constring = "Data Source = (LocalDB)\\MSSQLLocalDB; 
AttachDbFilename = C:\\Users\\hannes.corbett\\Desktop\\Barcode Scanning\\Barcode Scanning\\BarcodeDB.mdf; 
Integrated Security = True"; 

이 연결 문자열은 잘 작동하고 위에서 말했듯이 모든하지만 나는 그것이 내가 당신에 변수를 제공 할 수

답변

0

넣어 곳으로 환경되고 싶어 값 (예 : 데이터 소스, attachDbFilename 등). 그런 다음로드 이벤트에서 값을 검색합니다. 또는 구성 파일을 사용하여 연결 문자열을 검색하십시오. 최초의 솔루션과 마찬가지로 당신은 폴더 응용 프로그램 (디버그 또는 릴리스) 내부 데이터베이스 파일을 넣어

+0

로딩 할 때 값을 다시 얻으려면 어떻게해야합니까? –

+0

당신이 만드는 프로젝트 유형은 무엇입니까? 프로젝트 유형에 따라 다릅니다. 대부분의 경우 데이터베이스 연결 문자열은 Windows 응용 프로그램의 app.config 파일과 웹 응용 프로그램의 web.config 파일에 정의됩니다. –

0

이, 다음의 AppData 폴더에 필요한 데이터베이스를 넣어 같이 나타납니다 다음하지 않으면

Server=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|BarcodeDB.mdf;Database=BarcodeDB; 

, 다음은 Promod을 제안 옵션을 사용 할 수 있지만,이 경우에 할 수있는 가장 좋은 방법은, 당신이 전자를 알 필요하여 ConnectionString을에 다음 사용 모든 단일 환경에서 데이터베이스의 위치를 ​​xact하거나 모든 환경에서 필요한 DB를 찾기 위해 검색하십시오. 프로젝트의 경로를 찾으려면

0

가능한 경우 Application.StartupPath하여 호출해야

string constring = "Data Source = "+ YourDataSource +"; AttachDbFilename = "+ YourAttachedDBFilePath +"; Integrated Security = True"; 
0

당신은 사용할 수 있습니다

string path = System.AppDomain.CurrentDomain.BaseDirectory; 

대안을, 당신이 (당신의 실행 파일 옆) 빌드 폴더에 DB 파일을 저장하기로 결정한 경우 :

string path = Path.GetDirectoryName(new Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath); 

예 : 프로젝트를 이동하거나 여러 시스템에있을 때

// filename of your Db file 
string filename = "BarcodeDB.mdf"; 
// combine filename and your local path 
string dbFilePath = Path.Combine(path, filename); 
// use the db filepath in your constring using string interpolation 
string constring = $"Data Source = (LocalDB)\\MSSQLLocalDB; AttachDbFilename = {dbFilePath}; Integrated Security = True"; 

그래서 (DB를 가정 파일이있는 경우), 파일을 찾을 수 있어야합니다.