Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb : VC#2008 Express et Base SQL Server 2005

2 réponses
Avatar
edforum
Bonjour =E0 tous

>>> Contexte

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

2. Acc=E8s depuis une application
J'ai lanc=E9 Visual C# 2008 Express.
J'ai ouvert un projet de test, et dans la winform par d=E9faut j'ai mis
une DataGridView.
J'ai cr=E9=E9 une source de donn=E9es et l'ai associ=E9e =E0 cette DataGrid=
View.
Cette source de donn=E9es pointe sur le fichier AdventureWorksLT.mdf
install=E9 dans
=2E..\MSSQL.1\MSSQL\Data ( r=E9pertoire par d=E9faut ).
Pendant la cr=E9ation de cette source, l'assistant a demand=E9 s'il devait
cr=E9er une copie de cette base dans /App_Data et utiliser cette copie.
J'ai refus=E9 et demand=E9 =E0 utiliser la base situ=E9e dans le r=E9pertoi=
re
par d=E9faut 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=E9 son libell=E9.

Jusque-l=E0 tout va bien !

J'ai ferm=E9 Visual C# et l'application par la m=EAme occasion.

>>> Probl=E8me

Je lance "SQL Server Management Studio Express" =E0 nouveau pour
acc=E9der
=E0 la base, j'ai l'erreur suivante :

La base de donn=E9es 'AdventureWorksLT' ne peut pas =EAtre ouverte, car
des fichiers sont inaccessibles, ou la m=E9moire 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 =E9t=E9 ajout=E9 dans le
r=E9pertoire par d=E9faut de SQL Server 2005 Express, les fichiers
AdventureWorksLT_Data.mdf et AdventureWorksLT_Log.ldf sont toujours
pr=E9sents.

Je constate que la base de donn=E9es a =E9t=E9 modifi=E9e.
Y a-t-il une d=E9marche pour qu'elle ne le soit pas, en dehors du fait
d'accepter la copie de la base dans le r=E9pertoire /App_Data de
l'application ?

Pour le d=E9veloppement, la copie dans le r=E9pertoire /App_Data local =E0
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=E8me avec une base de
prod.

J'attends vos suggestions.

Merci d'avance

ED

2 réponses

Avatar
Agnain
Tu as le choix :

- Ou tu récupère les données dans ton Winform en te connectant au
serveur de base de données (pas en ouvrant directement le fichier). Pour
ça il te fait te connecter avec une chaine de connexion du genre :
Data Source=localhost;Initial Catalog­ventureWorks;Integrated
Security=SSPI;

- Ou tu oublies l'utilisation de SQL Server Management Studio vu que ta
base est ouverte par ton programme.


SQL n'est pas FoxPro ! Il y a un système avec un vrai serveur qui donne
des accès aux données et tout... c'est un peu le principe...


edforum a écrit :
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


Avatar
Eddy Maue
Salut,

C'est vrai que Foxpro n'est pas SQL server. Par contre Visual Foxpro dialoque
très bien avec SqlServer, MySql et PostGres. Quand nos classes d'acces sont
bien développées, c'est avec une facilité déconcertante qu'on puisse changer le
contenu d'une simple variable pour pointer avec le server qui nous plaises.

Et cela m'amène à poser la question suivante :

Est ce que C# peut dialoguer avec MySql ou Postgres ?

Est-ce simple ?

eddy maue a+



Agnain a formulé la demande :
Tu as le choix :



- Ou tu récupère les données dans ton Winform en te connectant au serveur de
base de données (pas en ouvrant directement le fichier). Pour ça il te fait
te connecter avec une chaine de connexion du genre :
Data Source=localhost;Initial Catalog­ventureWorks;Integrated
Security=SSPI;



- Ou tu oublies l'utilisation de SQL Server Management Studio vu que ta base
est ouverte par ton programme.



SQL n'est pas FoxPro ! Il y a un système avec un vrai serveur qui donne des
accès aux données et tout... c'est un peu le principe...



edforum a écrit :
Bonjour à tous

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.

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