我正在使用以下代码以编程方式创建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();
}
}
我想改进上面的代码。我的疑问如下:
此方法包含在受保护的类中。我希望直接调用这些方法,而无需创建此类的实例。建议没有开销的方式。
虽然我传递 bool 来确定用户是否要加密文件,但未在连接字符串行中使用。我没有关注加密中需要包含哪些其他参数以及如何包含加密算法。
我希望以最少的开销包含异常处理。我想要包含“ using ”,但不是如何修改上面的代码。
答案 0 :(得分:3)
static
。不确定这个是什么意思。你应该在其他地方抓住SqlCeException
。此外,您应该将SqlCeEngine
包装在using语句中。
try
{
string connectionString = string.Format("DataSource=\"{0}\"; Password='{1}'", _databaseFileName, _password);
using (SqlCeEngine engine = new SqlCeEngine(connectionString))
{
engine.CreateDatabase();
}
}
catch (SqlCeException)
{
}