2

如何创建 SQL Compact Edition 数据库?我试图弄清楚,搜索了互联网,但我找不到它(但话又说回来,你怎么搜索这个?!)。到目前为止,这是我的代码:

checkPasswordsMatch();
SqlCEConnection myconn = new SqlCEConnection();
SqlCeCommand myCommand = new SqlCeCommand(
    @"CREATE DATABASE ""pwdb.sdf"" DATABASEPASSWORD '" + textBox1.Text + "'");
myCommand.ExecuteNonQuery();

我在连接部分放什么?我不明白。

更新:我决定创建一个数据库以与应用程序合并,并简单地检查是否有专用于记录 Master 的值(管理员密码)。

这是我的新代码:

Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        SqlCeConnection myconn = new SqlCeConnection("Data Source = pwdb.sdf;");
        SqlCeCommand checkpass = new SqlCeCommand("SELECT * from PW WHERE Name = Master;",myconn);
        try
        {
            myconn.Open();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
        if (checkpass.ExecuteNonQuery() != null)
        {
            Application.Run(new enterMasterPassword());
        }
        else
            Application.Run(new mainPassSet());

问题是,当我现在执行此操作时,我得到:

System.Data.SqlServerCe.dll 中出现“System.Data.SqlServerCe.SqlCeException”类型的未处理异常

任何想法任何人?

4

2 回答 2

2

尝试使用SqlCeEngine类。使用该类,您可以创建一个新数据库:

using (SqlCeEngine engine = new SqlCeEngine())
{
    engine.LocalConnectionString = yourConnectionString;
    engine.CreateDatabase();
}
于 2013-10-07T16:55:58.480 回答
0

因为您可能只想在您不想在代码中创建数据库时创建数据库。

几个建议:

1) 如果您使用的是 Visual Studio,您可以打开服务器资源管理器(在菜单 View->Server Explorer 下)并在那里创建它。

2)使用免费的 SQL 管理器之一,如linkpad或 powershell + sqlcmd(还有其他)

3)或...不知道您使用的是什么数据模型,但具有“代码优先”的 EntityFramework 将根据您的连接字符串以及您如何命名数据上下文自动为您创建数据库。由于您使用的是 sdf 标签,因此您可能使用的是 EF ...

于 2013-10-07T17:16:17.873 回答