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

Comment établir une connexion sous SQL 2008

21 réponses
Avatar
PhilXP
Bonsoir
Je me lance dans un domaine que je ne connais pas : SQL server 2008

J'essaye d'établir une connexion de ma base SQL, mais j'ai à chaque fois un
message d'erreur
"La recherche dufichier "C:\Users\...\DataSecret.sdf" dans les répertoires
s'est terminée par l'erreur système 5(Accès refusé.).
Impossible de joindre le fichier 'C:\Users\...\DataSecret.sdf' en tant que
base de données 'dbname'."

Comme c'est la première fois que je m'essaye aux bases SQL j'aimerais
comprendre ce qui ne fonctionne pas.

Voici mon code :
Dim MaConnexion As SqlConnection = New SqlConnection
ComboListeSite.Items.Clear() MaConnexion.ConnectionString=
"Server=.\SQLExpress;Integrated
Security=True;AttachDbFilename=C:\Users\...DataSecret.sdf;DataBase=dbname;Trusted_Connection=Yes"
MaConnexion.Open()
Dim MaCommande As SqlCommand = MaConnexion.CreateCommand
MaCommande.CommandText = "SELECT SiteInternet FROM SecretDeBase"
Dim MaListe As SqlDataReader = MaCommande.ExecuteReader
Dim i As Integer = 0
Do While
MaListe.Read ComboListeSite.Items.Add(MaListe.GetString(0))
i = i + 1
Loop
MaListe.Close()
Le nom de Table de ma base est : SecretDeBase
Par avance merci pour toute votre aide

10 réponses

1 2 3
Avatar
Bonsoir Phil,

Je fais ainsi :
Public connection_bdd_appli As SqlConnection

Sub open_connection_bdd_appli()

Dim cs As String = "Data Source=.SQLEXPRESS;AttachDbFilename=""" &
NomFichierBDDAppli & """;Integrated Security=True;Connect Timeout0;User
Instance=True"

connection_bdd_appli = New SqlConnection(cs)

connection_bdd_appli.Open()

End Sub

Sub remplit_bdd_appli()

Dim req, table As String

Dim ds As DataSet

table = "MaTable"

req = "Select * From " & table

ds = GetDataSet(req, table)

Call remplit_combobox(Me.MonComboBox, ds.Tables(table), "MonChamps",
"NuméroAuto", 250)

End Sub

Public Function GetDataSet(ByVal SQLCommand As String, ByVal
NameTableForMappage As String) As DataSet

Dim DataAdapter As SqlClient.SqlDataAdapter

Dim ds As New DataSet

DataAdapter = New SqlClient.SqlDataAdapter(SQLCommand, connection_bdd_appli)

DataAdapter.Fill(ds, NameTableForMappage)

Return ds

End Function

Sub remplit_combobox(ByVal ComboBox As ComboBox, ByVal DataSource As
DataTable, ByVal DisplayMember As String, ByVal ValueMember As String, ByVal
DropDownWidth As Integer)

With ComboBox

.DataSource = DataSource 'Table

.DrawMode = DrawMode.Normal

.DisplayMember = DisplayMember

.ValueMember = ValueMember

.DropDownWidth = DropDownWidth

.FormattingEnabled = True

.SelectedValue = -1

End With

End Sub



En espérant que cela puisse t'aider,

Stéphane


"PhilXP" a écrit dans le message de news:

Bonsoir
Je me lance dans un domaine que je ne connais pas : SQL server 2008

J'essaye d'établir une connexion de ma base SQL, mais j'ai à chaque fois
un
message d'erreur
"La recherche dufichier "C:Users...DataSecret.sdf" dans les répertoires
s'est terminée par l'erreur système 5(Accès refusé.).
Impossible de joindre le fichier 'C:Users...DataSecret.sdf' en tant que
base de données 'dbname'."

Comme c'est la première fois que je m'essaye aux bases SQL j'aimerais
comprendre ce qui ne fonctionne pas.

Voici mon code :
Dim MaConnexion As SqlConnection = New SqlConnection
ComboListeSite.Items.Clear() MaConnexion.ConnectionString > "Server=.SQLExpress;Integrated
Security=True;AttachDbFilename=C:Users...DataSecret.sdf;DataBaseÛname;Trusted_Connection=Yes"
MaConnexion.Open()
Dim MaCommande As SqlCommand = MaConnexion.CreateCommand
MaCommande.CommandText = "SELECT SiteInternet FROM SecretDeBase"
Dim MaListe As SqlDataReader = MaCommande.ExecuteReader
Dim i As Integer = 0
Do While
MaListe.Read ComboListeSite.Items.Add(MaListe.GetString(0))
i = i + 1
Loop
MaListe.Close()
Le nom de Table de ma base est : SecretDeBase
Par avance merci pour toute votre aide


Avatar
PhilXP
Bonjour

J'ai testé ta méthode mais en la ré-adaptant à mon code
cela donne

Dim cs As String = "Data Source=.SQLEXPRESS;AttachDbFilename=" &
"G:CodeSecretCodeSecretCodeSecretDataSecret.sdf" & ";Integrated
Security=True;Connect Timeout0;User Instance=True"

Dim MaConnexion As SqlConnection = New SqlConnection(cs)
MaConnexion.Open()

Mon problème est que je reçois un message d'erreur
Échec d'une tentative d'attachement d'une base de données nommée
automatiquement pour le fichier
G:CodeSecretCodeSecretCodeSecretDataSecret.sdf. Il existe une base de
données du même nom ou le fichier spécifié ne peut être ouvert ou il se
trouve sur un partage UNC.

J'ai essayé le code sous un profil administrateur et standard, mais le
problème ne vient pas de là.

Aurais-tu une idée de mon problème. Y a t-il un soucis dans mon code ?

Par avance un grand merci

"Stéphane" a écrit :

Bonsoir Phil,

Je fais ainsi :
Public connection_bdd_appli As SqlConnection

Sub open_connection_bdd_appli()

Dim cs As String = "Data Source=.SQLEXPRESS;AttachDbFilename=""" &
NomFichierBDDAppli & """;Integrated Security=True;Connect Timeout0;User
Instance=True"

connection_bdd_appli = New SqlConnection(cs)

connection_bdd_appli.Open()

End Sub

Sub remplit_bdd_appli()

Dim req, table As String

Dim ds As DataSet

table = "MaTable"

req = "Select * From " & table

ds = GetDataSet(req, table)

Call remplit_combobox(Me.MonComboBox, ds.Tables(table), "MonChamps",
"NuméroAuto", 250)

End Sub

Public Function GetDataSet(ByVal SQLCommand As String, ByVal
NameTableForMappage As String) As DataSet

Dim DataAdapter As SqlClient.SqlDataAdapter

Dim ds As New DataSet

DataAdapter = New SqlClient.SqlDataAdapter(SQLCommand, connection_bdd_appli)

DataAdapter.Fill(ds, NameTableForMappage)

Return ds

End Function

Sub remplit_combobox(ByVal ComboBox As ComboBox, ByVal DataSource As
DataTable, ByVal DisplayMember As String, ByVal ValueMember As String, ByVal
DropDownWidth As Integer)

With ComboBox

..DataSource = DataSource 'Table

..DrawMode = DrawMode.Normal

..DisplayMember = DisplayMember

..ValueMember = ValueMember

..DropDownWidth = DropDownWidth

..FormattingEnabled = True

..SelectedValue = -1

End With

End Sub



En espérant que cela puisse t'aider,

Stéphane


"PhilXP" a écrit dans le message de news:

> Bonsoir
> Je me lance dans un domaine que je ne connais pas : SQL server 2008
>
> J'essaye d'établir une connexion de ma base SQL, mais j'ai à chaque fois
> un
> message d'erreur
> "La recherche dufichier "C:Users...DataSecret.sdf" dans les répertoires
> s'est terminée par l'erreur système 5(Accès refusé.).
> Impossible de joindre le fichier 'C:Users...DataSecret.sdf' en tant que
> base de données 'dbname'."
>
> Comme c'est la première fois que je m'essaye aux bases SQL j'aimerais
> comprendre ce qui ne fonctionne pas.
>
> Voici mon code :
> Dim MaConnexion As SqlConnection = New SqlConnection
> ComboListeSite.Items.Clear() MaConnexion.ConnectionString > > "Server=.SQLExpress;Integrated
> Security=True;AttachDbFilename=C:Users...DataSecret.sdf;DataBaseÛname;Trusted_Connection=Yes"
> MaConnexion.Open()
> Dim MaCommande As SqlCommand = MaConnexion.CreateCommand
> MaCommande.CommandText = "SELECT SiteInternet FROM SecretDeBase"
> Dim MaListe As SqlDataReader = MaCommande.ExecuteReader
> Dim i As Integer = 0
> Do While
> MaListe.Read ComboListeSite.Items.Add(MaListe.GetString(0))
> i = i + 1
> Loop
> MaListe.Close()
> Le nom de Table de ma base est : SecretDeBase
> Par avance merci pour toute votre aide





Avatar
Fred
in news:, PhilXP wrote
:

Bonjour



Bonjour,

Dim cs As String = "Data Source=.SQLEXPRESS;AttachDbFilename=" &
"G:CodeSecretCodeSecretCodeSecretDataSecret.sdf" & ";Integrated
Security=True;Connect Timeout0;User Instance=True"



Juste une question. Pourquoi as-tu un fichier .sdf ? Il me semble qu'ils
sont plutôt destinés à être utilisé avec SqlCE (Compact Edition) et non
SQL Server.
Les fichiers de base de données de SQL Server sont des fichiers .mdf
(entre autres).
Ce sont ceux ci uniquement que l'on attache avec la directive
AttachDbFilename, voir doc de SqlConnection.ConnectionString

--
Fred

Avatar
Bonjour,

Je suis d'accord avec Fred.

J'avais essayé de changer l'extension .mdf en .monextension, mais cela
retournait l'erreur que tu indiques.

Stéphane


"Fred" a écrit dans le message de news:

in news:, PhilXP wrote :

Bonjour



Bonjour,

Dim cs As String = "Data Source=.SQLEXPRESS;AttachDbFilename=" &
"G:CodeSecretCodeSecretCodeSecretDataSecret.sdf" & ";Integrated
Security=True;Connect Timeout0;User Instance=True"



Juste une question. Pourquoi as-tu un fichier .sdf ? Il me semble qu'ils
sont plutôt destinés à être utilisé avec SqlCE (Compact Edition) et non
SQL Server.
Les fichiers de base de données de SQL Server sont des fichiers .mdf
(entre autres).
Ce sont ceux ci uniquement que l'on attache avec la directive
AttachDbFilename, voir doc de SqlConnection.ConnectionString

--
Fred



Avatar
PhilXP
Bonjour
En fait j'utilise Visual Basic Express 2008. Donc il y a de forte chance que
j'utilise SQL 2008 Express Edition.
Donc je petit paramètre qui pour moi est anodin, est peut-être pour vous
capital.
Donc je m'excuse.
Effectivement, SQL 2008 refuse les bases .mdb
Il m'est impossible de les charger

J'ai essayé de mon coté d'élaboré un code

Dim MaConnexion As SqlConnection = New SqlConnection("Data
Source=.SQLExpress;DataBase=" & "DataSecret.sdf" & ";Integrated
Security=SSPI")
MaConnexion.Open()
J'ai meme pris le meme code mais en mettant le chemin complet de la base
dans DataBase.
Mais je suis toujours bloqué par un message

"Impossible d'ouvrir la base de données "DataSecret.sdf" demandée par la
connexion. La connexion a échoué. Échec de l'ouverture de session de
l'utilisateur 'PhilouSephia"

Encore merci pour le temps passé à m'aider
Avatar
Sylvain Lafontaine
Vous ne pouvez pas ouvrir des fichiers .SDF avec SQL-Server Express, ces
fichiers sont pour la version Compact seulement. De plus, arrêtez d'essayer
d'utiliser les fichiers attachés dynamiquement ("user instances") avec la
commande AttachDbFilename; cela ne vas que vous causer des problèmes;
spécialement si vous êtes débutant.

Il serait plus facile de commencer par créer une base de données normale
dans SQL-Express 2008 en utilisant SSMS-Express et d'utiliser ensuite une
chaîne de connection standard (sans les paramètres AttachDbFilename et User
Instance); genre:

Dim MaConnexion As SqlConnection = New SqlConnection("Data
Source=.SQLExpress;DataBase=" &
"NomDeMaBaseDeDonneesTelleQu_IndiqueeDansSSMS" & ";Integrated
Security=SSPI")

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


"PhilXP" wrote in message
news:
Bonjour
En fait j'utilise Visual Basic Express 2008. Donc il y a de forte chance
que
j'utilise SQL 2008 Express Edition.
Donc je petit paramètre qui pour moi est anodin, est peut-être pour vous
capital.
Donc je m'excuse.
Effectivement, SQL 2008 refuse les bases .mdb
Il m'est impossible de les charger

J'ai essayé de mon coté d'élaboré un code

Dim MaConnexion As SqlConnection = New SqlConnection("Data
Source=.SQLExpress;DataBase=" & "DataSecret.sdf" & ";Integrated
Security=SSPI")
MaConnexion.Open()
J'ai meme pris le meme code mais en mettant le chemin complet de la base
dans DataBase.
Mais je suis toujours bloqué par un message

"Impossible d'ouvrir la base de données "DataSecret.sdf" demandée par la
connexion. La connexion a échoué. Échec de l'ouverture de session de
l'utilisateur 'PhilouSephia"

Encore merci pour le temps passé à m'aider



Avatar
> En fait j'utilise Visual Basic Express 2008. Donc il y a de forte chance
que
j'utilise SQL 2008 Express Edition.



C'est exactement ce que j'utilise pour lire mes MDF.
Et avec la solution que j'utilise plus haut, cela fonctionne.
Avatar
Bonjour Sylvain,

L'avantage d'utiliser les fichiers dynamiquement me permet d'ouvrir des
projets dans mon appli, et je gère ainsi les données en SQL. Avant, je
faisais en XML, mais je n'ai jamais trouvé de possibilité de faire de
requêtes sur des DataTables d'un DataSet (chargé via un XML), d'où mon choix
porté maintenant sur le SQL.

Ainsi, j'utilise 2 bases de données SQL Server : 1 pour mon appli. Et 1 pour
le projet que j'ouvre, sachant que je peux créer un nouveau projet, fermer
le projet en cours, l'enregistrer et l'enregistrer sous. Et ca marche, même
si j'ai eu des difficultés, notamment lors de la libération des ressources
(pour par exemple fermer et ouvrir un autre projet, ou pour enregistrer le
projet). Pourtant, je suis bien débutant avec le SQL Server.

D'ailleurs, je m'en vais maintenant regarder plus en détail du côté de ce
fameux SSMS-Express qui m'a l'air bien intéressant !

Stéphane.



"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:
Vous ne pouvez pas ouvrir des fichiers .SDF avec SQL-Server Express, ces
fichiers sont pour la version Compact seulement. De plus, arrêtez
d'essayer d'utiliser les fichiers attachés dynamiquement ("user
instances") avec la commande AttachDbFilename; cela ne vas que vous causer
des problèmes; spécialement si vous êtes débutant.

Il serait plus facile de commencer par créer une base de données normale
dans SQL-Express 2008 en utilisant SSMS-Express et d'utiliser ensuite une
chaîne de connection standard (sans les paramètres AttachDbFilename et
User Instance); genre:

Dim MaConnexion As SqlConnection = New SqlConnection("Data
Source=.SQLExpress;DataBase=" &
"NomDeMaBaseDeDonneesTelleQu_IndiqueeDansSSMS" & ";Integrated
Security=SSPI")

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


"PhilXP" wrote in message
news:
Bonjour
En fait j'utilise Visual Basic Express 2008. Donc il y a de forte chance
que
j'utilise SQL 2008 Express Edition.
Donc je petit paramètre qui pour moi est anodin, est peut-être pour vous
capital.
Donc je m'excuse.
Effectivement, SQL 2008 refuse les bases .mdb
Il m'est impossible de les charger

J'ai essayé de mon coté d'élaboré un code

Dim MaConnexion As SqlConnection = New SqlConnection("Data
Source=.SQLExpress;DataBase=" & "DataSecret.sdf" & ";Integrated
Security=SSPI")
MaConnexion.Open()
J'ai meme pris le meme code mais en mettant le chemin complet de la base
dans DataBase.
Mais je suis toujours bloqué par un message

"Impossible d'ouvrir la base de données "DataSecret.sdf" demandée par la
connexion. La connexion a échoué. Échec de l'ouverture de session de
l'utilisateur 'PhilouSephia"

Encore merci pour le temps passé à m'aider







Avatar
PhilXP
Bonsoir
Tout d'abord, si j'utilise des fichiers avec l'extension .sdf c'est que je
n'ai pas le choix.
Lorsque je veux charger une base .mdb, par exemple, j'ai un message d'erreur
me disant que ce type d'extension n'est pas pris en charge par sql 2008 (et
d'après ce que j'ai vu sur le net, c'est bien le cas pour ma version)
Quant à SSMS Express, il n'est téléchargeable, à priori que pour SQL Express
2005.
Par contre, ce que j'aimerais savoir c'est si un profil ou un mot de passe
doit apparaitre dans l'instruction car j'ai l'impression que mon problème
vient d'un problème de profil.

Merci

"Sylvain Lafontaine" a écrit :

Vous ne pouvez pas ouvrir des fichiers .SDF avec SQL-Server Express, ces
fichiers sont pour la version Compact seulement. De plus, arrêtez d'essayer
d'utiliser les fichiers attachés dynamiquement ("user instances") avec la
commande AttachDbFilename; cela ne vas que vous causer des problèmes;
spécialement si vous êtes débutant.

Il serait plus facile de commencer par créer une base de données normale
dans SQL-Express 2008 en utilisant SSMS-Express et d'utiliser ensuite une
chaîne de connection standard (sans les paramètres AttachDbFilename et User
Instance); genre:

Dim MaConnexion As SqlConnection = New SqlConnection("Data
Source=.SQLExpress;DataBase=" &
"NomDeMaBaseDeDonneesTelleQu_IndiqueeDansSSMS" & ";Integrated
Security=SSPI")

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


"PhilXP" wrote in message
news:
> Bonjour
> En fait j'utilise Visual Basic Express 2008. Donc il y a de forte chance
> que
> j'utilise SQL 2008 Express Edition.
> Donc je petit paramètre qui pour moi est anodin, est peut-être pour vous
> capital.
> Donc je m'excuse.
> Effectivement, SQL 2008 refuse les bases .mdb
> Il m'est impossible de les charger
>
> J'ai essayé de mon coté d'élaboré un code
>
> Dim MaConnexion As SqlConnection = New SqlConnection("Data
> Source=.SQLExpress;DataBase=" & "DataSecret.sdf" & ";Integrated
> Security=SSPI")
> MaConnexion.Open()
> J'ai meme pris le meme code mais en mettant le chemin complet de la base
> dans DataBase.
> Mais je suis toujours bloqué par un message
>
> "Impossible d'ouvrir la base de données "DataSecret.sdf" demandée par la
> connexion. La connexion a échoué. Échec de l'ouverture de session de
> l'utilisateur 'PhilouSephia"
>
> Encore merci pour le temps passé à m'aider
>





Avatar
Sylvain Lafontaine
Je suis d'accord que dans certains cas, cela peut être utile d'ouvrir un
fichier de base de données dynamiquement. Cependant, à défaut d'en savoir
plus sur ce que vous faites exactement, il m'est impossible de vous dire si
je suis d'accord ou non avec l'utilisation que vous en faites dans votre
cas.

Pour ce qui est de faire des requêtes sur un DataSet, vous pouvez utiliser
l'outil commercial QueryADataset (www.queryadataset, pas vraiment onéreux)
ou encore utiliser les librairies de SQL-Server Compact Edition pour créer
une mini-base de données locale et faire vos manipulations dedans.

SSMS-Express est également une hypothèse intéressante mais contrairement à
la version compacte, celui-ci doit être installée; ce qui peut causer des
problèmes dans bien des cas.

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


<Stéphane> wrote in message news:
Bonjour Sylvain,

L'avantage d'utiliser les fichiers dynamiquement me permet d'ouvrir des
projets dans mon appli, et je gère ainsi les données en SQL. Avant, je
faisais en XML, mais je n'ai jamais trouvé de possibilité de faire de
requêtes sur des DataTables d'un DataSet (chargé via un XML), d'où mon
choix porté maintenant sur le SQL.

Ainsi, j'utilise 2 bases de données SQL Server : 1 pour mon appli. Et 1
pour le projet que j'ouvre, sachant que je peux créer un nouveau projet,
fermer le projet en cours, l'enregistrer et l'enregistrer sous. Et ca
marche, même si j'ai eu des difficultés, notamment lors de la libération
des ressources (pour par exemple fermer et ouvrir un autre projet, ou pour
enregistrer le projet). Pourtant, je suis bien débutant avec le SQL
Server.

D'ailleurs, je m'en vais maintenant regarder plus en détail du côté de ce
fameux SSMS-Express qui m'a l'air bien intéressant !

Stéphane.



"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:
Vous ne pouvez pas ouvrir des fichiers .SDF avec SQL-Server Express, ces
fichiers sont pour la version Compact seulement. De plus, arrêtez
d'essayer d'utiliser les fichiers attachés dynamiquement ("user
instances") avec la commande AttachDbFilename; cela ne vas que vous
causer des problèmes; spécialement si vous êtes débutant.

Il serait plus facile de commencer par créer une base de données normale
dans SQL-Express 2008 en utilisant SSMS-Express et d'utiliser ensuite une
chaîne de connection standard (sans les paramètres AttachDbFilename et
User Instance); genre:

Dim MaConnexion As SqlConnection = New SqlConnection("Data
Source=.SQLExpress;DataBase=" &
"NomDeMaBaseDeDonneesTelleQu_IndiqueeDansSSMS" & ";Integrated
Security=SSPI")

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


"PhilXP" wrote in message
news:
Bonjour
En fait j'utilise Visual Basic Express 2008. Donc il y a de forte chance
que
j'utilise SQL 2008 Express Edition.
Donc je petit paramètre qui pour moi est anodin, est peut-être pour vous
capital.
Donc je m'excuse.
Effectivement, SQL 2008 refuse les bases .mdb
Il m'est impossible de les charger

J'ai essayé de mon coté d'élaboré un code

Dim MaConnexion As SqlConnection = New SqlConnection("Data
Source=.SQLExpress;DataBase=" & "DataSecret.sdf" & ";Integrated
Security=SSPI")
MaConnexion.Open()
J'ai meme pris le meme code mais en mettant le chemin complet de la base
dans DataBase.
Mais je suis toujours bloqué par un message

"Impossible d'ouvrir la base de données "DataSecret.sdf" demandée par la
connexion. La connexion a échoué. Échec de l'ouverture de session de
l'utilisateur 'PhilouSephia"

Encore merci pour le temps passé à m'aider











1 2 3