Accès a un mdf sur réseau local (dossier partagé) [Résolu]

thefloo 7 Messages postés dimanche 4 novembre 2007Date d'inscription 28 avril 2009 Dernière intervention - 8 juil. 2008 à 20:18 - Dernière réponse :  oualidfa
- 3 janv. 2013 à 13:37
Bonjour,

Après avoir cherché et cherché, gratté sur tous les forums de développeurs (et d'autres aussi d'ailleurs), le déséspoir me gagne...Surtout n'étant pas un champion de SQL server 2005...
Voilà mon problème :
J'ai développé sous Visual C# 2005 Express Edition une petite application qui stock des informations dans une base de donnée. Mon application fonctionne très bien tant que le fichier de base de donnée *.mdf reste local (même si je le déplace ; je modifie le fichier *.config associé contenant les informations de la base de donnée en corrigeant le AttachDbFilename).
Le problème est que mon application prend tout son sens si la base de donnée se trouve sur un ordinateur A auquel des ordinateurs B, C et D puissent avoir accès. Bref, pour centraliser la base de donnée quoi !
Seulement voilà, lorsque je modifie le AttachDbFilename en mettant un chemin réseau (du style [file://\\MonOrdi\MonMdf.mdf \\MonOrdi\MonMdf.mdf]), j'obtiens le message suivant :

"Le fichier "nom_de_fichier" se trouve sur un chemin d'accès réseau qui n'est pas pris en charge pour les fichiers de base de données. Echec d'une tentative d'attachement d'une base de donnée nommée automatiquement pour le fichier "nom_de_fichier". Il existe une base de donnée du même nom ou le fichier spécifié ne peut être ouvert ou il se trovue sur un partage UNC."

Alors...Effectivement, j'ai partagé un dossier sur le réseau où j'y ai mis mon *.mdf.
Alors comment contourner ce problème ?

J'ai tout réalisé par Visual C#, donc les tables, les requêtes, etc. Les bases de données réalisées dans ces conditions sont elles exclusivement locales ?

Le sqlBrowser est bien actif, les protocoles TCP/IP, cannaux nommés aussi.

Au cas où cela puisse servir, je joins mon fichier config :

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        [file://\\MonOrdi\Partage\Gestion.mdf \\MonOrdi\Partage\Gestion.mdf]  == C:\Partage\Gestion.mdf)


Je vous remercie par avance.


P.S : Je ne suis vraiment pas au point pour la gestion les bases de données avec sql... Soyez indulgents !
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
krishou 60 Messages postés dimanche 9 janvier 2005Date d'inscription 21 août 2008 Dernière intervention - 9 juil. 2008 à 15:38
3
Merci
Hello Floo,

Alors pour commencer, tu dois te munir d'un outil de management pour sql server,
le plus simple étant de prendre sql server management studio (url).
Pour importer les données, si je me souviens bien, tu peux exporter ta base mdf vers un script sql depuis VS. Après il te suffit de créer une base de données dans SSMS.
Pour le connection string, il y a un site spécialement prévu pour ca : www.connectionstrings.com

Tu y trouveras des exemples de ConStr pour la plupart des SBDD du marché.

++

Merci krishou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 117 internautes ce mois-ci

Commenter la réponse de krishou
krishou 60 Messages postés dimanche 9 janvier 2005Date d'inscription 21 août 2008 Dernière intervention - 9 juil. 2008 à 11:40
0
Merci
Salut,

Tu dois déployer ta base de données mdf sur un server sql, par exemple sql server express. Ensuite tu devras changer la ConnectionString dans ton config pour pointer vers le server et non vers un fichier local. Il faut savoir que lorsque tu développes dans VS, les fichiers mdf que tu utilises sont monté "automatiquement" dans un mini-server sql intégré dans VS (très simplifié).

Bien à toi,

Krish
Commenter la réponse de krishou
thefloo 7 Messages postés dimanche 4 novembre 2007Date d'inscription 28 avril 2009 Dernière intervention - 9 juil. 2008 à 14:18
0
Merci
Tout d'abord, merci Krishou pour ta rapidité à répondre !
Je comprends mieux le pourquoi du comment maintenant, je situe le problème.
Mais...concrètement comment on fait pour monter un mdf sur sql server ?...
(J'avais prévenu hein, c'est pas mon truc sql ! )
J'ai installé SQL server express 2005 mais j'avoue que je ne comprend pas le fonctionnement. J'ai bien le panneau de configuration mais a part ça...
Tu pourrais m'expliquer un peu plus en détail la marche à suivre pour mettre en fonctionnement le server ainsi que le détail des modifs pour le connectionString s'il te plait ? Parce que depuis ta réponse j'ai déjà essayé de bidouiller mais je crois que je suis parti dans la mauvaise direction.
Ca serait gentil !

Floo
Commenter la réponse de thefloo
thefloo 7 Messages postés dimanche 4 novembre 2007Date d'inscription 28 avril 2009 Dernière intervention - 9 juil. 2008 à 21:05
0
Merci
Ca marche !

Finalement avec un peu d'obstination et quelques précieux conseils, ça marche !
Merci Krish pour tes conseils et ta rapidité à répondre!
Je vais expliquer ce que j'ai fait (même si ça parait bête) au cas où d'autres auraient le même problème.

Avec SSMS, il suffit de se connecter au serveur sql (ce qui se fait tout seul a l'ouverture du logiciel). Dans l'explorateur qui se situe à gauche (par défaut) il y a un onglet base de données. Un clic droit puis "joindre". Il ne reste alors qu'à aller chercher son fichier mdf, valider, et voici la base de données ajoutée au serveur SQL. Mieux vaut renommer le mdf nouvellement ajouté car il prend par défaut comme nom le chemin d'accès complet sur le disque.

Il ne reste plus qu'à trouver le bon connectionString qui pour moi était celui ci :
            connectionString="Server=MonOrdi\SQLEXPRESS;Database=Gestion.mdf;Trusted_Connection=Yes;"


Server doit être le nom de l'ordi sur lequel est installé le serveur sql suivi du nom du serveur. Database est tout bêtement le nom que l'on a donné au fichier mdf ajouté aux base de données dans SSMS.
Et c'est tout ! Sachant que dans mon cas j'ai une connexion qui ne nécéssite pas de cryptage particulier ou de protocoles avancés.

En éspérant que cela puisse servir à d'autres ! Et encore merci Krish !

Floo
Commenter la réponse de thefloo
krishou 60 Messages postés dimanche 9 janvier 2005Date d'inscription 21 août 2008 Dernière intervention - 10 juil. 2008 à 09:06
0
Merci
De rien. Ravi d'avoir pu t'aider!

Krish
Commenter la réponse de krishou
Commenter la réponse de oualidfa

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.