2011-12-28 3 views
0

데이터 용으로 SQL Server Compact 4.0 (.sdf)을 사용하는 응용 프로그램을 만들었습니다. 그러면 사용자는 .sdf 파일을 저장하고 응용 프로그램에로드 할 수 있어야합니다. 빈 .sdf 파일을 만드는 메서드를 빌드 할 수있었습니다. 내 App.Config에는 미리 정의 된 .sdf (Entity Framework)에 대한 연결 문자열이 있습니다. 사용자가 .sdf 파일을로드 할 수 있어야한다면 새로 만든 .sdf 파일에 대해 작동하도록 app.config 파일의 connectionstring을 설정해야합니다.연결 문자열 설정 엔터티 프레임 워크

새 .sdf 파일에 대해 작동하도록 Entity Framework를 동적으로 설정하는 방법은 무엇입니까?

이것은 지금까지 sdf를 만드는 클래스의 코드입니다. 이 후 사용자는 작업 할 파일을 선택할 수 있어야합니다. 어떻게 설정합니까?

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.IO; 
using System.Data.SqlServerCe; 
using System.Configuration; 
using GLL.Properties; 

namespace GLL 
{ 
public partial class LoadDatabaseForm : Form 
{ 
    public LoadDatabaseForm() 
    { 
     InitializeComponent(); 
    } 

    private void buttonNew_Click(object sender, EventArgs e) 
    { 
     createDatabase(); 
     setConnectionString(); 
    } 

    private void setConnectionString() 
    { 
     ConnectionStringSettings str =  System.Configuration.ConfigurationManager.ConnectionStrings["GLLDBEntities"]; 
     MessageBox.Show(str.ConnectionString); 




    } 

    private void createDatabase() 
    { 
     string connStr = "Data Source = FooDatabase.sdf; Password = SomePassword"; 

     if (File.Exists("FooDatabase.sdf")) 
      File.Delete("FooDatabase.sdf"); 

     SqlCeEngine engine = new SqlCeEngine(connStr); 
     engine.CreateDatabase(); 

     SqlCeConnection conn = null; 


     try 
     { 
      conn = new SqlCeConnection(connStr); 

      conn.Open(); 

      SqlCeCommand cmd = conn.CreateCommand(); 
      cmd.CommandText = "CREATE TABLE FooTable(col1 int, col2 ntext)"; 
      cmd.ExecuteNonQuery(); 
     } 
     catch 
     { 

     } 
     finally 
     { 

      conn.Close(); 
     } 
     } 
    } 
} 

답변

1

좋아, 그럼 청력은 연결 문자열을 dyamicly App.config 파일에서 설정할 수 있어야합니다. 좋은 점은 키 값 쌍이라는 것입니다. 다음은 App.Config에서 값을 변경하는 방법의 예입니다.

// Open App.Config of executable 
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  
// Add an Application Setting. 
config.AppSettings.Settings.Remove("ConnectionString"); 
config.AppSettings.Settings.Add("ConnectionString", "Data Source = FooDatabase.sdf; Password = SomePassword"); 
// Save the configuration file. 
config.Save(ConfigurationSaveMode.Modified); 

// Force a reload of a changed section. 
ConfigurationManager.RefreshSection("appSettings"); 

이것은 단지 예입니다. 이 작업을 수행하는 방법에 대한 자세한 정보는 다음과 같습니다. http://chiragrdarji.wordpress.com/2008/09/25/how-to-change-appconfig-file-run-time-using-c/

관련 문제