创建新的SQL Server CE DB文件的方法。建议改进

时间:2010-11-10 19:08:55

标签: c# sql-server-ce

我正在使用以下代码以编程方式创建SQL Server CE数据库文件。我正在使用C#2008。

    /* Create a new SQL Server CE database file programatically */
    protected void CreateDB(string _databaseFileName, bool _encryptFile, string _password)
    {
        if (File.Exists(_databaseFileName))
            MessageBox.Show("A file with this name already exists.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        else
        {
            string connectionString = string.Format("DataSource=\"{0}\"; Password='{1}'", _databaseFileName, _password);
            SqlCeEngine engine = new SqlCeEngine(connectionString);
            engine.CreateDatabase();
        }
    }

我想改进上面的代码。我的疑问如下:

  1. 此方法包含在受保护的类中。我希望直接调用这些方法,而无需创建此类的实例。建议没有开销的方式。

  2. 虽然我传递 bool 来确定用户是否要加密文件,但未在连接字符串行中使用。我没有关注加密中需要包含哪些其他参数以及如何包含加密算法。

  3. 我希望以最少的开销包含异常处理。我想要包含“ using ”,但不是如何修改上面的代码。

1 个答案:

答案 0 :(得分:3)

  1. 制作方法static
  2. 如果在连接字符串中包含密码,则会自动加密数据库文件。
  3. 不确定这个是什么意思。你应该在其他地方抓住SqlCeException。此外,您应该将SqlCeEngine包装在using语句中。

    try
    {
       string connectionString = string.Format("DataSource=\"{0}\"; Password='{1}'", _databaseFileName, _password);
       using (SqlCeEngine engine = new SqlCeEngine(connectionString))
       {
          engine.CreateDatabase();
       }
    }
    catch (SqlCeException)
    {
    }