只是想知道一些这方面的做法;
我用本地数据库(SQL CE)(dB.sdf文件)制作了一个简单的可视化C#程序。
假设用户删除了dB.sdf文件,并尝试打开exe程序 - 没有任何反应(exe文件启动但又重新关闭)。
这里的典型做法是什么?程序是不会启动还是让程序创建数据库文件(如果它不存在)?
如果是后者,它是如何完成的?
第二种方法更明智,因为如果它依赖于被删除的数据库,那么你的程序是无用的。
string connStr = "Data Source = DBName.sdf; Password = DBPassword";
if (!File.Exists("DBName.sdf")){
try {
SqlCeEngine engine = new SqlCeEngine(connStr);
engine.CreateDatabase();
SqlCeConnection conn = new SqlCeConnection(connStr);
conn.Open();
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText = "CREATE TABLE TableName(Col1 int, Col2 varchar(20))";
cmd.ExecuteNonQuery();
}
catch (SQLException ex){
// Log the exception
}
finally {
conn.Close();
}
}
string fileName = txtEditFolderPath.Text + "\\" + txtEditDatabaseName.Text + ".sdf";
if (File.Exists(fileName))
{
MessageBox.Show("Database with this name already existed at this location !", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
string connectionString;
string password = "123";
connectionString = string.Format(
"DataSource=\"{0}\"; Password='{1}'", fileName, password);
SqlCeEngine en = new SqlCeEngine(connectionString);
en.CreateDatabase();
}