【问题标题】:Connect to a database not created yet?连接到尚未创建的数据库?
【发布时间】:2013-10-07 16:40:26
【问题描述】:

如何创建 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”类型的未处理异常

有什么想法吗??

【问题讨论】:

  • 我不知道在 CE 中是否同样适用,但在完整版中,您使用数据库 master 连接到您的服务器。然后运行你的创建数据库脚本。
  • 你看过this SO Q&A了吗?

标签: c# sql-server-ce


【解决方案1】:

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

using (SqlCeEngine engine = new SqlCeEngine())
{
    engine.LocalConnectionString = yourConnectionString;
    engine.CreateDatabase();
}

【讨论】:

  • 但是连接字符串是什么,我不知道要连接什么?
  • 数据源=C:\data\mydatabase.sdf
  • 您应该查看 MSDN 上的 ConnectionString 文档:msdn.microsoft.com/en-us/library/… 可以设置许多内容,例如密码(数据库加密)、排序、自动收缩阈值等。
【解决方案2】:

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

几个建议:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 2015-02-20
    • 1970-01-01
    • 2010-12-14
    • 2017-02-24
    • 1970-01-01
    相关资源
    最近更新 更多