2017-02-19 1 views
0

I a développé une application sous forme de fenêtres avec base de données et publiaisComment pointer pour corriger chemin vers la base de données de l'application installée à l'aide clickone

quand je tryed pour obtenir la sauvegarde de la base de données que j'implémentés en utilisant le code

string database = GetDataDirectory(); 
     MessageBox.Show(database); 
SqlConnection.ClearAllPools(); 

     using (SqlConnection backupConn = new SqlConnection()) 
     { 
      backupConn.ConnectionString = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=|DataDirectory|\\BbCon.mdf;Integrated Security=True;Connect Timeout=30;"; 
      backupConn.Open(); 

      using (SqlCommand backupcomm = new SqlCommand()) 
      { 
       backupcomm.Connection = backupConn; 
       backupcomm.CommandText = @"BACKUP DATABASE @DBNAME TO DISK='c:\\Users\Public\\BbCon.bak'"; 
       backupcomm.Parameters.AddWithValue("@DBNAME", database+"\\BbCon.mdf"); 
       int x = backupcomm.ExecuteNonQuery(); 
       if(x == -1) 
       { 
        MessageBox.Show("DataBase Backup Created Successfully at c:\\Users\\Public"); 
       } 
      } 
      backupConn.Close(); 
     } 

private string GetDataDirectory() 
    { 
     ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment; 
     return ad.DataDirectory; 
     //return Environment.CurrentDirectory.ToString(); 
    } 

Je reçois une erreur enter image description here

mais quand je naviguais dans le répertoire qui apparaît dans le message d'erreur j'ai trouvé un fichier Bbcon.mdf mais je reçois l'erreur

s'il vous plaît aidez-moi s'il vous plaît avec ce problème je suis coincé avec problème s'il vous plaît aidez-moi

Répondre

1

Vous ne pouvez pas sauvegarder une base de données par son nom de fichier physique (s). Vous devez sauvegarder une base de données par son nom de base de données:

BACKUP DATABASE [BbCon] TO DISK = 'c:\Users\Public\BbCon.bak'