2017-02-17 1 views
0

Ich versuche Backup zu machen und wiederherstellen als Start Ich mag diesesWie kommt man zum relativen Pfad der Datenbank C# wpf localdb Punkt

try 
{ 
    string cbdfilename = "c:\\Bbcon.bak"; 
    SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\v11.0;AttachDbFilename=|DataDirectory|\\BbCon.mdf;Integrated Security=True;Connect Timeout=30;"); 
    string sql = "Backup database @DBNAME to Disk = @FILENAME with Format"; 
    SqlConnection.ClearAllPools(); 
    SqlCommand cmd = new SqlCommand(sql, con); 
    cmd.Parameters.AddWithValue("@DBNAME", "BbCon"); 
    cmd.Parameters.AddWithValue("@FILENAME", cbdfilename); 
    con.Open(); 
    try 
    { 
     cmd.ExecuteNonQuery(); 
    } 
    catch(Exception ex) 
    { 
     MessageBox.Show("Backup DB failed" + ex.ToString()); 
    } 
    finally 
    { 
     con.Close(); 
     con.Dispose(); 
    } 
} 
catch (SqlException ex) 
{ 
    MessageBox.Show(ex.Message); 
} 
finally 
{ 
    if (con.State == ConnectionState.Open) 
    { 
     con.Close(); 
    } 
} 

einen Code so schreiben Backup-Datenbank zu bekommen versuche aber, wenn ich laufen diese Code ich erhalte eine Fehlerdatenbank BbCon Ihre Datenbank nicht vorhanden überprüfen ich weiß nicht, was Problem ist sicher, aber ich glaube, ich zu Datenbank falschen Weg gegeben haben, weiß ich, der Weg od Datenbank richtig es wie

ist
C:\Users\Mahdi Rashidi\AppData\Local\Apps\2.0\NOL11TLW.9XG\CZM702AQ.LPP\basu..tion_939730333fb6fcc8_0001.0002_fd707bbb3c97f8d3 

aber Dieses Projekt ist für einige andere Kunden so, wenn ich diese Software auf anderen Computerpfad installieren werde ändern, damit ich eine Fehlermeldung erhalten, so ich Sie betteln alle mir eine bessere Lösung Hilfe bei der Suche für die Erstellung einer Backup-programattically

Antwort

0

Ich empfehle Ihnen eine app.config-Datei zu erstellen und das Backup-Zielpfad setzen dort

OR

Was ich vor einiger Zeit tat (zu laden Baugruppen dynamisch, aber dieses Stück Code ermöglicht u den Pfad Standort abzurufen basierend auf der Baugruppe, die Sie laufen) war es so etwas wie:

(Don Vergessen Sie nicht, System.Reflection zu Ihrer Benutzungsliste hinzuzufügen)

// get the current assembly from cache 
var currentAssembly = Assembly.GetEntryAssembly(); 

// if current assembly is null 
if (currentAssembly == null) 
{ 
    // get the current assembly from stack trace 
    currentAssembly = new StackTrace().GetFrames().Last().GetMethod().Module.Assembly; 
} 

// get the assemblies path (from returned assembly) 
assembliesPath = Path.GetDirectoryName(currentAssembly.Location); 

Von diesem Punkt können Sie nun "Datenpfad" verketten und Ihre Daten dort speichern.

Ich hoffe, es hilft.

+0

es half, aber jetzt bekomme ich einen anderen Fehler kann Backup-Gerät nicht öffnen Es tut mir leid, wenn ich Sie durch Frage auf Frage –

+0

zweitens fein.Fehler in den Kommentar behoben berichtigt, indem Sie den Pfad zu c: \ users \ public –

+0

es ist in Ordnung, diese Website Ziel ist es, einander zu helfen. Veröffentlichen Sie den vollständigen Code für die Tiefenanalyse und eine weitere Frage: 1) Versuchen Sie, die Sicherung auf einem lokalen Computer zu erstellen (auf dem die Anwendung ausgeführt wird)? 2) Werden der Anwendungs- und der Datenbankserver auf demselben Computer ausgeführt? Danke. – rmszc81

Verwandte Themen