我构建了一个使用 SQL Server Compact 4.0 (.sdf) 处理数据的应用程序。然后,用户应该能够将 .sdf 文件保存并加载到应用程序中。我已经能够构建一个创建空 .sdf 文件的方法。但我的 App.Config 有一个到预定义 .sdf(实体框架)的连接字符串。如果用户应该能够加载 .sdf 文件,我需要设置 app.config 文件的连接字符串以针对新创建的 .sdf 文件工作。
如何动态设置实体框架以针对我的新 .sdf 文件工作?
这是迄今为止创建 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();
}
}
}
}