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

 .NET Discussion :

Probleme d'établir la connexion entre la BDD et c# [C#]


Sujet :

.NET

  1. #1
    Membre à l'essai
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 16
    Points
    16
    Par défaut Probleme d'établir la connexion entre la BDD et c#
    Bonjour, j développe une application avec C# (pas un site web), j'ai crée une base local avec Visuel studio 2010 ( sqlserver connector) (une base .mdf).
    Quand j'ai crée mon code pour établir la connexion à la BDD aprés la création des tables, j'ai une erreur ou plutot une exeption ( en jaunne) comme suit;
    Option de connexion inconnue dans la chaîne de connexion : attachdbfilename.
    Voici mon code:
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      SqlCeConnection wConnexion = new SqlCeConnection();
                  wConnexion.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\Nad\\Documents\\ecole.mdf;User ID=ecole;Connect Timeout=30;User Instance=True;";
                // Tenter la connexion sinon afficher un message d’erreur
                try
                {
                    wConnexion.Open();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Impossible d'ouvrir la connexion !");
                    MessageBox.Show(ex.Message);
                }

    la chaine de connexion je l'ai récupérer le la définition de la base de donné( .mdf)

    Merci pour aide d'avance ...

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 226
    Points : 28 221
    Points
    28 221
    Par défaut
    Visiblement tu utilise une base de données SQLServer Express, or tu utilise les classes dédiées aux base SQLServer Compact Edition. Ca ne peut pas fonctionner.

    Pour SQLServer Express (comme pour SQLServer standard) il faut utiliser les classes de System.Data.SQLClient.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 16
    Points
    16
    Par défaut Suite
    Oui mais quand j'ai rajouté ça il le connais pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Data.SqlServer;
    !!!!
    donc j'utilise pas le sqlserver non ?

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 226
    Points : 28 221
    Points
    28 221
    Par défaut
    System.Data.SQLClient

  5. #5
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 170
    Points : 7 422
    Points
    7 422
    Billets dans le blog
    1
    Par défaut
    Je dirais même plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Data.SqlClient;
    Parceque avec QL en majuscule, ça marchera pas non plus

  6. #6
    Membre à l'essai
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 16
    Points
    16
    Par défaut
    Merci pour vos réponses, ça marche la commande que vous m'avez donnez ,
    maintenant ça génère pas d'exception mais il m'affiche
    Echec de l'ouverture de session de l'utilisateur 'ecole'
    Pourtant j'ai bien crée la base de donnée 'ecole' et elle est bien ouverte ?!!

    à savoir quand j'ai crée ma base j'ai pas utilisé un utilisateur et mot de passe mais j'ai utilisée les identifiants windows . Comment puis je les récupérer surtou User ID ?

    Merci

    Edit

    Merci beaucoup pour votre aide , j'ai trouvé la solution;
    il fallais juste copier la connexionString qui se trouve dans la base de données

  7. #7
    Membre à l'essai
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 16
    Points
    16
    Par défaut Suite
    j'ai une autre question mais là c'est pour la requête d'insertion , je veux savoir si il faut incrémenter la clé primaire a chaque fois ou se fais automatiquement

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wCommand.CommandText = "INSERT INTO eleve VALUES (@id_eleve, @NOM)"; 
    wCommand.Parameters.AddWithValue("@NOM", "toto");

    et l'id_eleve c'est la clé primaire c'est pas la peine que j donne de valeur ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Faible37 Voir le message
    j'ai une autre question mais là c'est pour la requête d'insertion , je veux savoir si il faut incrémenter la clé primaire a chaque fois ou se fais automatiquement
    ça dépend de comment t'as défini ta colonne. Si elle est définie avec le mot clef IDENDITY alors ça le fait automatiquement et tu n'auras pas besoin de fournir sa valeur en paramètre de ta commande ni même d'ajouter la colonne dans ta requête INSERT et avoir le code suivant :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wCommand.CommandText = "INSERT INTO eleve VALUES (@NOM)"; 
    wCommand.Parameters.AddWithValue("@NOM", "toto");

  9. #9
    Membre à l'essai
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 16
    Points
    16
    Par défaut Suite
    Et si je l'ai pas définie comme IDENTITY dans la base aprés je suis obligé d'incrémenter ?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Faible37 Voir le message
    Et si je l'ai pas définie comme IDENTITY dans la base aprés je suis obligé d'incrémenter ?
    Si c'est pas Jean, c'est Paul

    Si tu ne le définis pas en tant que IDENTIY tu dois gérer l'incrémentation toi-même.

  11. #11
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 170
    Points : 7 422
    Points
    7 422
    Billets dans le blog
    1
    Par défaut
    A savoir que dans une requête INSERT, si tu n'indiques pas tous les champs (même si tu les indiques tous d'ailleurs), n'oublie jamais de les énumérer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into matable (champ1, champ2, champ3, ...) values (@champ1, @champ2, @champ3, ...);
    En effet, si un jour tu as :
    - des champs un plus
    - l'ordre des champs qui est modifié suite à un ALTER

    Bah si tu indiques pas explicitement quels champs tu alimentes, ça va planter.

  12. #12
    Membre à l'essai
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 16
    Points
    16
    Par défaut Suite
    Et pour modifier ma base pour mettre IDENTITY pour la clé primaire j'ai pas vu quelquechose dans VStudio dans la modification de l atable qui peu faire sa ??
    merci

  13. #13
    Invité
    Invité(e)
    Par défaut
    IDENTITY est une clause SQL donc il faut que tu modifies le schéma via du T-SQL ou via SSMS

    PS : Es-tu vraiment un enseignant ?

  14. #14
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par Faible37 Voir le message
    Et pour modifier ma base pour mettre IDENTITY pour la clé primaire j'ai pas vu quelquechose dans VStudio dans la modification de l atable qui peu faire sa ??
    merci
    SSMS est peut être plus adapté que VS pour faire des modifs sur la base, non ?

    Dans SSMS, tu passe en mode design sur la table, tu sélectionne le champ en question, et dans le volet en bas tu as des propriétés notamment l'Identity Specification, où tu choisis IsIdentity à 'Yes', et tu laisses les Increment et Seed en valeur par défaut.

  15. #15
    Membre à l'essai
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 16
    Points
    16
    Par défaut Suite
    Merci sa marche , j'ai une autre question , comment puis je définir une clé étrangère je trouve pas ( il y a que la clé primaire) sous le concepteur de la bd

  16. #16
    Membre à l'essai
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 16
    Points
    16
    Par défaut Probleme dans la requête de SELECT
    Je devellope un programme sous C#, j'ai définis ma requete comme un String comme suit :
    "requete = "SELECT * FROM eleve WHERE nom_eleve"+textBox1.Text+;"

    Aprés je fais
    " using (SqlDataAdapter a = new SqlDataAdapter (
    requete , c))
    {} "
    mais sa marche pas la requete psq il mets pas la valeur textBox1.Text entre ' ' du coup il plante .
    Comment puis je faire svp ?

  17. #17
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par Faible37 Voir le message
    Comment puis je faire svp ?
    Utiliser les requêtes paramétrées, comme déjà dit 10 000 fois. (et mentionné au dessus, par H2S84, en plus !!!)

  18. #18
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    Voici un exemple d'insertion avec une base de donnée compact édition

    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
    public int InsererPersonne(Personne personne)
            {
                int nbInsertion = 0;
                using (SqlCeConnection con = new SqlCeConnection(@"Data Source=C:\***\Personne.sdf"))
                {
                    SqlCeCommand cmd = con.CreateCommand();
                    cmd.CommandType = System.Data.CommandType.Text;
                    cmd.CommandText = "Insert Into Personne(nom,prenom,pays,age) Values(@nom,@prenom,@pays,@age)";
                    cmd.Parameters.Add("@nom", personne.Nom);
                    cmd.Parameters.Add("@prenom", personne.Prenom);
                    cmd.Parameters.Add("@pays", personne.Pays);
                    cmd.Parameters.Add("@age", personne.Age);
                    con.Open();
                    cmd.Transaction = con.BeginTransaction();
                    nbInsertion = cmd.ExecuteNonQuery();
                    cmd.Transaction.Commit();
                }
                return nbInsertion;
            }
    l'utilisation des transactions n'est pas obligatoire

  19. #19
    Membre à l'essai
    Femme Profil pro
    Enseignant
    Inscrit en
    Février 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 43
    Points : 16
    Points
    16
    Par défaut Suite
    Oui merci pour votre réponse, mais j'ai un autre souci c'est que moi je construit ma requete j'utilise pas ce que tu m'avais écris donc j'ai crée ma requete et je la définis comme STRING et puis j'au un souci au moment de récupere la valeur d'un ChekBox je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete += " AND pb_sante = " + check_pb.Text.ToString() + " ";
    mais la requete affiche rein pour le champ pb_sante (défini comme bit dans la base) je fais comment pour récupérer la bonne valeur (TRUE ou FALSE) pour que ca marche dans la requete SELET

    Merci

  20. #20
    Membre du Club
    Homme Profil pro
    Développeur SharePoint 2010
    Inscrit en
    Juillet 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur SharePoint 2010
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    je ne me souviens pas trop , mais normalement un check ca retroune un Boolean , meme si tu fais ton .toString() ca ne va pas marcher , essai de tester ton bool si c un true tu affecte la valeur que tu veu sur ta variable si c nn ..... ^^

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] comment établir la connexion entre un client et un serveur?
    Par spring.time dans le forum VB.NET
    Réponses: 12
    Dernier message: 20/10/2012, 10h41
  2. Réponses: 1
    Dernier message: 23/05/2011, 15h37
  3. Réponses: 0
    Dernier message: 28/04/2011, 12h40
  4. Établir une connexion entre Forms et Oracle
    Par kvirus dans le forum Connexions aux bases de données
    Réponses: 3
    Dernier message: 01/04/2011, 23h30
  5. Réponses: 1
    Dernier message: 17/10/2005, 13h56

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