2012-04-01 8 views
4

Ich wundere mich nur über etwas Übung darüber;Datenbankdatei (.sdf) erstellen, wenn sie nicht existiert?

Ich habe ein einfaches Visual C# -Programm mit lokaler Datenbank (SQL CE) (dB.sdf-Datei) gemacht.

Nehmen wir an, Benutzer löscht die dB.sdf-Datei und versucht, das EXE-Programm zu öffnen - nichts passiert (die EXE-Datei startet, aber schließt sich wieder).

Was ist die typische Praxis hier? Ist es so, dass das Programm nicht startet oder das Programm eine Datenbankdatei erstellt, wenn sie nicht existiert?

Wenn es das letztere ist, wie wird es gemacht?

Mit freundlichen Grüßen

Antwort

7

Der zweite Ansatz ist weiser als Ihr Programm uselsess ist, wenn es auf Datenbank abhängt, die gelöscht wird.

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(); 
        } 
Verwandte Themen