Pb : SQL Server 2005 Express et C#

Le
edforum
Bonjour à tous

>>> Contexte

1. Installation de la base AdventureWorksLT
J'ai installé la base AdventureWorksLT avec le fichier
AdventureWorksLT.msi .
J'ai lancé "SQL Server Management Studio Express" et ai accédé sans
difficulté à la base.
J'ai fermé ensuite "SQL Server Management Studio Express".

2. Accès depuis une application
J'ai lancé Visual C# 2008 Express.
J'ai ouvert un projet de test, et dans la winform par défaut j'ai mis
une DataGridView.
J'ai créé une source de données et l'ai associée à cette DataGridV=
iew.
Cette source de données pointe sur le fichier AdventureWorksLT.mdf
installé dans
MSSQL.1MSSQLData ( répertoire par défaut ).
Pendant la création de cette source, l'assistant a demandé s'il devait
créer une copie de cette base dans /App_Data et utiliser cette copie.
J'ai refusé et demandé à utiliser la base située dans le répertoir=
e
par défaut de sql server 2005 express.

La DataGridView permet de visualiser tout le contenu de la table
produit (pour le test).
J'ai choisi un produit et ai modifié son libellé.

Jusque-là tout va bien !

J'ai fermé Visual C# et l'application par la même occasion.


>>> Problème

Je lance "SQL Server Management Studio Express" à nouveau pour
accéder
à la base, j'ai l'erreur suivante :

La base de données 'AdventureWorksLT' ne peut pas être ouverte, car
des fichiers sont inaccessibles, ou la mémoire ou l'espace disque sont
insuffisants. Pour plus d'informations, consultez le journal des
erreurs de SQL Server. (Microsoft SQL Server, Error: 945)

Le fichier AdventureWorksLT_Data_log.LDF a été ajouté dans le
répertoire par défaut de SQL Server 2005 Express, les fichiers
AdventureWorksLT_Data.mdf et AdventureWorksLT_Log.ldf sont toujours
présents.

Je constate que la base de données a été modifiée.
Y a-t-il une démarche pour qu'elle ne le soit pas, en dehors du fait
d'accepter la copie de la base dans le répertoire /App_Data de
l'application ?

Pour le développement, la copie dans le répertoire /App_Data local à
l'application s'impose.

Quid de la liaison entre l'application et la base en production ?
Il ne s'agit pas de reproduire ce genre de problème avec une base de
prod.

J'attends vos suggestions.

Merci d'avance

ED
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sylvain Lafontaine
Le #11878261
Le problème, c'est que vous faites pointer la source de données vers le
fichier AdventureWorksLT.mdf au lieu de la faire pointer vers la base de
données telle que présentée par SQL-Server Express. Pointer votre source de
données vers le serveur SQL-Express au lieu d'essayer de la faire pointer
directement vers le fichier MDF.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"edforum" news:
Bonjour à tous

Contexte







1. Installation de la base AdventureWorksLT
J'ai installé la base AdventureWorksLT avec le fichier
AdventureWorksLT.msi .
J'ai lancé "SQL Server Management Studio Express" et ai accédé sans
difficulté à la base.
J'ai fermé ensuite "SQL Server Management Studio Express".

2. Accès depuis une application
J'ai lancé Visual C# 2008 Express.
J'ai ouvert un projet de test, et dans la winform par défaut j'ai mis
une DataGridView.
J'ai créé une source de données et l'ai associée à cette DataGridView.
Cette source de données pointe sur le fichier AdventureWorksLT.mdf
installé dans
...MSSQL.1MSSQLData ( répertoire par défaut ).
Pendant la création de cette source, l'assistant a demandé s'il devait
créer une copie de cette base dans /App_Data et utiliser cette copie.
J'ai refusé et demandé à utiliser la base située dans le répertoire
par défaut de sql server 2005 express.

La DataGridView permet de visualiser tout le contenu de la table
produit (pour le test).
J'ai choisi un produit et ai modifié son libellé.

Jusque-là tout va bien !

J'ai fermé Visual C# et l'application par la même occasion.


Problème







Je lance "SQL Server Management Studio Express" à nouveau pour
accéder
à la base, j'ai l'erreur suivante :

La base de données 'AdventureWorksLT' ne peut pas être ouverte, car
des fichiers sont inaccessibles, ou la mémoire ou l'espace disque sont
insuffisants. Pour plus d'informations, consultez le journal des
erreurs de SQL Server. (Microsoft SQL Server, Error: 945)

Le fichier AdventureWorksLT_Data_log.LDF a été ajouté dans le
répertoire par défaut de SQL Server 2005 Express, les fichiers
AdventureWorksLT_Data.mdf et AdventureWorksLT_Log.ldf sont toujours
présents.

Je constate que la base de données a été modifiée.
Y a-t-il une démarche pour qu'elle ne le soit pas, en dehors du fait
d'accepter la copie de la base dans le répertoire /App_Data de
l'application ?

Pour le développement, la copie dans le répertoire /App_Data local à
l'application s'impose.

Quid de la liaison entre l'application et la base en production ?
Il ne s'agit pas de reproduire ce genre de problème avec une base de
prod.

J'attends vos suggestions.

Merci d'avance

ED
Publicité
Poster une réponse
Anonyme