2012-04-01 10 views
4

これについてのいくつかの練習については不思議です。データベースファイル(.sdf)が存在しない場合は作成しますか?

ローカルデータベース(SQL CE)(dB.sdfファイル)を使用して、シンプルなビジュアルC#プログラムを作成しました。

ユーザーがdB.sdfファイルを削除してexeプログラムを開こうとしたとします。何も起こりません(exeファイルが開始されますが、もう一度閉じます)。

ここでは一般的に何が行われていますか?プログラムが始まらないのでしょうか、それとも存在しなければプログラムがデータベースファイルを作成するのでしょうか?

後者の場合、どのように行われますか?

敬具

答えて

7

それが削除されるデータベースに依存している場合、プログラムがuselsessであるように、第2のアプローチは、より賢明です。

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(); 
} 
} 
0
    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(); 
        } 
関連する問題