2011-12-28 15 views
0

データ用にSQL Server Compact 4.0(.sdf)を使用するアプリケーションを構築しました。 ユーザーは.sdfファイルをアプリケーションに保存して読み込むことができます。 空の.sdfファイルを作成するメソッドをビルドすることができました。私のApp.Configには、あらかじめ定義された.sdf(Entity Framework)への接続文字列があります。ユーザーが.sdfファイルを読み込めるようにするには、新しく作成した.sdfファイルに対してapp.configファイルのconnectionstringを設定する必要があります。接続文字列を設定するEntity Framework

新しい.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

これで、App.configファイルで接続文字列をdyamiclyに設定する必要があることがわかりました。良いことは、それが重要な価値のペアであるということです。ここでは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/

関連する問題