IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Problème de connexion Visual C#2008 et SQL Server 2005 sous Vista


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut Problème de connexion Visual C#2008 et SQL Server 2005 sous Vista
    Bonjour/Bonsoir,

    Voilà mon erreur :
    "Impossible d'ouvrir la base de données \"TestBDD\" demandée par la connexion. La connexion a échoué. Échec de l'ouverture de session de l'utilisateur*'Users'."

    Voici mon app.config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
        </configSections>
        <connectionStrings>
            <add name="TestBDDConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=TestBDD;Integrated Security=True"
                providerName="System.Data.SqlClient" />
            <add name="Test.Properties.Settings.TestBDDConnectionString"
                connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TestBDD.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
                providerName="System.Data.SqlClient" />
        </connectionStrings>
    </configuration>
    Voici le code de connexion à la DB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
     
    namespace Test
    {
        public static class ProcStock
        {
            public static List<MaListe> VoirMaListe()
            {
                List<MaListe> J = new List<MaListe>();
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["TestBDDConnectionString"].ToString());
                SqlCommand comm = con.CreateCommand();
                comm.CommandType = CommandType.StoredProcedure;
                comm.CommandText = "VoirMaListe";
     
                con.Open();
                try
                {
                    SqlDataReader r = comm.ExecuteReader();
                    while (r.Read())
                        M.Add(new ListeJeu(r.GetInt32(0), r.GetString(1)));
                    return M;
                }
                catch
                {
                    throw new Exception("Erreur de lecture");
                }
                finally
                {
                    con.Close();
                }
            }
        }
     
        public class MaListe
        {
            private int id;
            private String nom;
     
            public int Id
            {
                get { return id; }
            }
     
            public MaListe(int id, String nom)
            {
                this.id = id;
                this.nom = nom;
            }
        }
    }
    Il affiche l'erreur à con.Open();

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    peux-tu nous montrer comment tu te connectes à la base de données en faisant référence au fichier app.conf dans ton code ?
    N'oubliez pas le tag et

  3. #3
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    à la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["TestBDDConnectionString"].ToString());
    tu ne pourrais pas faire ça à la place ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["TestBDDConnectionString"].ConnectionString);
    ça serait plus propre

    Sinon, tu as fait les conenctionStrings à la main ou par le biais de l'assistant ?
    Tu arrive à te connecter à tes bases de données en dehors de Visual Studio ?
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    J'ai essayé en changeant, mais ça revient au même.

    Celui-là, je l'ai fait manuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <add name="TestBDDConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=TestBDD;Integrated Security=True"
                providerName="System.Data.SqlClient" />
    Celui-là a été fait automatiquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <add name="Test.Properties.Settings.TestBDDConnectionString"
                connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TestBDD.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
                providerName="System.Data.SqlClient" />

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    J'utilise l'authentification Windows, on ne me demande donc ni utilisateur ni mot de passe.

    Plus précisement :
    Lorsque j'ai créé la DB :

    Source de donnée : Fichier de base de données Microsoft SQL Server (SqlClient).
    Nom de fichier de base de données : TestBDD.
    Connexion au serveur : Utiliser l'authentification Windows.

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    deux tests à faire
    1- via VSTudio, dans la toolbox à gauche, tu à un onglet Serveur, et tu peux créér une connexion via un assistant. regarde si ca passe par là. si ca marche alors ta chaine de connexion est pourrie.

    sinon il suffit d'aller ici http://www.connectionstrings.com/?carrier=sqlserver2005

    et de prendre la seconde ce qui donnerait qqc du genre
    Driver={SQL Native Client};Server=.\SQLExpress; AttachDbFilename=|DataDirectory|TestBDD.mdf;Database=TestBDD;Trusted_Connection=Yes;
    Vérifie que ta base se nomme bien TestBDD


    toi tu met integrated-security = true.
    or il me semble qu'on met soit
    integrated-security =sspi soit Trusted_Connection=Yes (dixit le site précédent)
    après, je ne connais pas la différence
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  7. #7
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Le Integrated Security=True est juste, dixit MSDN :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Persist Security Info=False;Integrated Security=true;Initial Catalog=Northwind;server=(local)"
    Donc je ne pense pas que ça vienne de là.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  8. #8
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    en fait, ca vaut SSPI mais faut mettre SSPI quand meme (pourquoi? je sais pas )
    Recognized values are true, false, yes, no, and sspi (strongly recommended), which is equivalent to true.
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  9. #9
    Membre habitué Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    Ce n'est pas vraiment une question de recommandé ou pas, en fait "Integrated Security = TRUE" ne fonctionne que lorsqu'on utilise les librairies Sqlclient .NET, mais ne fonctionnera pas si tu utilises OLEDB par exemple, d'où l'utilisation de "Integrated Security = SSPI" qui marche pour les 2 .
    Défenseur de l'Apéro Social

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    Voilà avec SSPI ça fonctionne, mais ce qui est bizarre c'est qu'il ne trouve pas ma procédure stockée, alors qu'elle y est!
    Merci pour votre aide.

  11. #11
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    s'il ne la trouve pas, c'est que l'utilisateur utilisé pour se connecter n'a pas les droits d'execution sur la procédure. (ou alors que la base n'est pas bonne).
    essaie de voir si une requete SELECT * FROM table passe correctement. ca te permettra de trouver la source du problème
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    J'ai fait :

    SqlCommand comm = con.CreateCommand();
    comm.CommandText = "SELECT * FROM TABLETEST";

    Et il m'affiche une erreur : "Nom d'objet 'TABLETEST' non valide."
    Pourtant la table existe, vu que j'ai exécuté la procédure stockée et il m'affichait les données demandées.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    J'ai vérifié et j'ai trouvé l'erreur, et après l'avoir réparée, ce n'est pas grâce avec SSPI que ça fonctionnait, la db était toujours cachée dans SQL Server Management.
    Donc je n'ai pas avancé.

    Je remet mon app.config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
        </configSections>
        <connectionStrings>
          <add name="TestBDDConnectionString" connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=TestBDD;Integrated Security=SSPI;"
                providerName="System.Data.SqlClient" />
        </connectionStrings>
    </configuration>

  14. #14
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    Rajoute dans ta chaine de connexion le paramètre User Instance = false.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    Même avec User Instance=False ça ne marche toujours pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
        </configSections>
        <connectionStrings>
          <add name="TestBDDConnectionString" connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog=TestBDD;Integrated Security=SSPI;User Instance=False"
                providerName="System.Data.SqlClient" />
        </connectionStrings>
    </configuration>

  16. #16
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    Ton probléme est assez connu car en fait il ne faut pas (ou du moins éviter) de créer une base sous Visual Studio puis l'attacher sous SQL Server Management Studio puis revenir sur Visual Studio, etc ... Soit tu crée ta base sous Visual Studio et dans ce cas tu utilises une chaine de connexion du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <add name="TestDBBConnectionString"
                connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TestBDD.mdf;Integrated Security=True;User Instance=False"
                providerName="System.Data.SqlClient" />
    Soit tu crée ta base sous SQL Server Management Studio et la tu utilises un chaine du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <add name="TestBDDConnectionString"
                 connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=TestBDD;Integrated Security=SSPI;User Instance=False"
                providerName="System.Data.SqlClient" />
    Mais il faut éviter de mélanger les 2 par exemple créer un base sous Visual puis la rattaché sous SSMS.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 143
    Points : 54
    Points
    54
    Par défaut
    Voilà ça marche (enfin ), il fallait que User Interface soit True sinon ça ne marche pas.

    Solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <add name="TestBDDConnectionString" connectionString="Data Source=(local)\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TestBDD.mdf;Integrated Security=SSPI;User Instance=True"
                providerName="System.Data.SqlClient" />

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/06/2016, 14h26
  2. Lenteur requêtes ODBC SQL-server 2005 sous Vista
    Par Macc dans le forum Windows Vista
    Réponses: 3
    Dernier message: 04/08/2011, 14h57
  3. Réponses: 2
    Dernier message: 29/04/2010, 23h06
  4. Installation de SQL Server 2005 sous Vista
    Par aqavach dans le forum Microsoft BI
    Réponses: 2
    Dernier message: 28/04/2009, 09h54
  5. Connecter Visual C# 2008 à MS SQL Server 2005
    Par stigma dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 19/05/2008, 13h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo