J'essaie de créer une sous-application qui copie la base de données à l'emplacement souhaité par l'utilisateur. Bien qu'une erreur apparaisse que mon dossier nouvellement créé est utilisé par une autre application (je n'ai utilisé aucun lecteur de flux).

Les fichiers sont corrects et la copie dans le répertoire sélectionné fonctionne totalement, bien que le problème commence lorsque je crée le dossier et après que j'essaye de l'utiliser.

//Snippet
string SourceFile1 = @"C:\Users\user\Documents\DLLTESTBASE.mdf";
string SourceFile2 = @"C:\Users\user\Documents\DLLTESTBASE_log.ldf";
string BackupDirectory = BackupLocation.SelectedPath + "\\" + BackupName;
if (!Directory.Exists(BackupDirectory)){
    Directory.CreateDirectory(BackupDirectory);
    }
else{
     MessageBox.Show("A copy has been found :\n" + BackupDirectory , "Copy has been stoped!");
    }

string targetPath1 = BackupDirectory + "\\DB.mdf"; 
string targetPath2 = BackupDirectory + "\\DB_log.ldf";

try{
     System.IO.File.Copy(SourceFile1, targetPath1);
     System.IO.File.Copy(SourceFile2, targetPath2);
     MessageBox.Show("Copy has been successful.", "Completed!");
    }
catch (Exception ex){
    MessageBox.Show("An error has been occured."+ex,"Operation failed!");}
    }

Le résultat doit être que les 2 fichiers seront à l'intérieur du dossier.

1
Mr Philip 27 janv. 2019 à 14:27

3 réponses

Meilleure réponse

Fichier de base de données SQL utilisé avec le service SQL

Accéder aux services

Arrêter le service "Sql Server"

Vous pouvez utiliser ce lien stop-or-start- service-serveur-sql

Si vous ne voulez pas arrêter le service, utilisez ce lien

Vous pouvez également utiliser Attaching-and-Detach DB de manière pragmatique Attaching-and -Détacher

0
Mohammad Hatami 27 janv. 2019 à 12:19

Essayez la ligne suivante avant de créer les fichiers: File.SetAttribute (targetpath1, FileAttribute.Normal);

Vous obtiendrez une exception levée si les fichiers existent déjà.

Vous devrez soit supprimer les fichiers puis y écrire, soit utiliser le paramètre d'écrasement: System.IO.File.Copy (sourcefile1, targetPath1, true);

0
user3659675 27 janv. 2019 à 12:21

Désolé pour une réponse tardive, car il semble que le problème se produise en raison d'un compartiment caché de mon application principale, le problème a été résolu après le redémarrage de mon ordinateur et est réapparu lorsque j'ai exécuté l'application principale, vous aviez donc raison de dire que la connexion de fichier SQL était en cours d'exécution ( même si ce n'était pas visible).

Merci à tous pour l'aide ☺

0
Mr Philip 31 janv. 2019 à 19:41