2017-08-23 2 views
0

J'utilise Sql Server 2014 Express Edition. J'utilise Visual Studio 2015. J'ai créé une application C# Winform qui utilise une base de données. Dans l'application, j'ai un bouton qui est supposé sauvegarder la base de données. En cas de clic de bouton, la commande sqlSauvegarde de base de données Sql Server 2014 Express Edition à partir de C# - Sql Erreur

"backup database testdb to disk = @fullfilename"; 

est exécutée à l'aide sqlcommand et ExecuteNonQuery.

Quand je Faites le test, je reçois une erreur:

Failed to backup databaseSystem.Data.SqlClient.SqlException (0x80131904) Operating system error 3(The system cannot find the path specified).

Je teste la sauvegarde d'essayer de l'obtenir pour enregistrer sur un lecteur mappé. J'ai regardé sur google et essayé l'approche recommandée. J'ai changé le service de connexion pour Sql Server à un utilisateur de domaine. J'ai mappé le lecteur en utilisant les informations d'identification de ce même utilisateur de domaine. J'ai vérifié que l'utilisateur a toutes les permissions sur le partage, etc. Pas de joie. Même problème.

Je serais ravi d'entendre quelques conseils sur la façon de le faire fonctionner. Remarque: cela fonctionne très bien si vous utilisez un lecteur local non mappé.

Remarque: Il doit utiliser des lecteurs mappés ou des UNC. C'est une exigeance.

merci.

+0

Ne fonctionne-t-il pas aussi avec UNC ou uniquement avec un lecteur mappé? – MatSnow

+0

Est-ce que le proc/query exécuté en SQL est séparé de votre application C#? –

+0

Je suggérerais certainement de fournir la valeur de @fullfilename. Je suppose que nous pourrions avoir un problème de double-slashing (évasion) ou quelque chose de relativement basique. Etes-vous sûr que le disque que vous utilisez est réellement mappé au moment où la commande est exécutée? Ce serait un point où j'encouragerais l'utilisation des chemins UNC sur les lettres de lecteur ... –

Répondre

0

La sauvegarde vers UNC est prise en charge et devrait fonctionner sans problème.

Mes suggestions de dépannage:

  1. utilisation UNC au lieu de lecteur mappé et assurez-vous que le dossier de destination existe avant de commencer la sauvegarde
  2. Copie la commande SQL dans SSMS et démarrer manuellement la sauvegarde
  3. Si sauvegarde via SSMS fonctionne et votre application échoue toujours, démarrage SQL Profiler et regardez la commande SQL que votre application envoie

Bonne chance!

+0

Eh bien, je suppose que j'ai eu un cas de stupides. Après quelques querelles, j'ai constaté que les UNC fonctionnaient très bien. Les lecteurs mappés étaient un non. –