2011-03-24 6 views
2

양식에있는 데이터를 표시하려면 SQL 데이터베이스에 연결하는 내 양식에 dataAdapter, dataSet 및 BindingSource있어 모든 작동합니다. 그러나, 나는 연결할 서버의 2 가지 옵션이 필요하다. 예 : ISSP \ SQLEXPRESS 및 MY-WEB. 나는이 일을하는 법을 모르고 누군가가 나에게 도움을 줄 수 있는지 궁금해했다. 감사합니다 :) 하지만 변수를 사용할 때 연결할 수 없다고합니다.선택 사이의 연결 DataSource C#

아래 코드를 사용하고 있지만 연결할 수 없다고 말하면 내가 잘못 입력했는지 궁금합니다.

sqlConnectionNW.ConnectionString = "Data [email protected];Initial Catalog=Northwind;Integrated Security=True"; 

코드를 다음과 같이 변경하면 완벽하게 작동합니다.

sqlConnectionNW.ConnectionString = "Data Source=ISSP\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True"; 

답변

1

첫째 앱 설정 파일에 모두 연결 설정을 추가 : 응용 프로그램에서

<connectionStrings> 
    <add name="Test" 
    connectionString="Data Source=ISSP\SQLEXPRESS;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;" 
    providerName="System.Data.SqlClient" /> 
    <add name="Production" 
    connectionString="Data Source=MY-WEB;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;" 
    providerName="System.Data.SqlClient" /> 
</connectionStrings> 

가 폼에 콤보 상자를 추가하고 (이 예에서는 전화 uiConnection)와 그것을 채우기 위해 다음 코드를 추가

uiConnection.ValueMember = "Name"; 
foreach (ConnectionStringSettings con in ConfigurationManager.ConnectionStrings) 
    { 
     uiConnection.Items.Add(con); 
    } 

이제 드롭 다운을 사용하여 연결할 데이터베이스를 지정할 수 있습니다. 데이터를 가져올 때 올바른 연결 문자열을 얻으려면 다음을 수행하십시오.

ConnectionStringSettings connection = uiConnection.SelectedItem as ConnectionStringSettings 
string queryString = "SELECT CustomerID, CompanyName FROM dbo.Customers"; 
SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection); 
DataSet customers = new DataSet(); 
adapter.Fill(customers, "Customers"); 
1

데이터가 둘 다 동일하면 가장 쉬운 방법은 연결 문자열을 변경하고 다른 옵션을 선택하면 전환하는 것입니다.

예 : 데이터 원본 = "Server \ DBInstance", 초기 카탈로그 = "DatabaseName", 사용자 ID = "사용자", 암호 = "암호";

1

SqlConnection을 사용하는 DataAdapter에 오버로드가 있어야합니다. 이 연결을 수동으로 생성하고 연결하여 다른 연결을 선택할 때 데이터 어댑터로 전달할 수 있습니다.

dataset.designer.cs를보고 생성자를 찾으면 이것이 기본 생성자가 appsettings에서 수행하는 작업임을 알 수 있습니다.