2017-02-19 22 views
0

Я Разработал окно формы приложения с базой данных и опубликованКак указать правильный путь к базе данных приложения, установленным с помощью clickone

когда я судимый получить резервную копию базы данных, которая я, реализованным с использованием кода

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

я получаю ошибку enter image description here

но когда я переходите к директории, показанной в сообщении об ошибке я нашел файл Bbcon.mdf, но я получаю ошибку

, пожалуйста, помогите мне с этой проблемой. Я столкнулся с проблемой, пожалуйста, помогите мне.

ответ

1

Вы не можете создать резервную копию базы данных по ее физическим именам. Вы должны сделать резервную копию базы данных по ее базе данных:

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