Accès a un mdf sur réseau local (dossier partagé)

Résolu
thefloo Messages postés 7 Date d'inscription dimanche 4 novembre 2007 Statut Membre Dernière intervention 28 avril 2009 - 8 juil. 2008 à 20:18
 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 !

6 réponses

krishou Messages postés 60 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 21 août 2008 1
9 juil. 2008 à 15:38
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é.

++
3
krishou Messages postés 60 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 21 août 2008 1
9 juil. 2008 à 11:40
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
0
thefloo Messages postés 7 Date d'inscription dimanche 4 novembre 2007 Statut Membre Dernière intervention 28 avril 2009
9 juil. 2008 à 14:18
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
0
thefloo Messages postés 7 Date d'inscription dimanche 4 novembre 2007 Statut Membre Dernière intervention 28 avril 2009
9 juil. 2008 à 21:05
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
krishou Messages postés 60 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 21 août 2008 1
10 juil. 2008 à 09:06
De rien. Ravi d'avoir pu t'aider!

Krish
0
[^^happy8]
0
Rejoignez-nous