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

C# Discussion :

je n’arrive pas à créer une chaine de connexion digne de ce nom ! [Débutant]


Sujet :

C#

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 237
    Par défaut je n’arrive pas à créer une chaine de connexion digne de ce nom !
    Bonjour,

    windows Vista
    Microsoft Visual Studio 2008 Version 3.5 SP1
    Fournisseur de données .NET Framework pour Microsoft SQL Server Compact 3.5

    Je débute en C#, notamment avec les tables et je n’arrive pas à créer une chaine de connexion digne de ce nom ! ! !
    Je tente d’utiliser la base Northwind.sdf, elle est bien paramétré dans l’explorateur de service, je me connecte bien, je vois les tables, tous me semble OK de ce côté
    Si je fais une forme minimal avec un Dataset, un bindingsource, un tableAdaptater et une grille sur ma forme, tous est OK je lis bien toutes les données,
    La chaine de connection est bien <<Data Source=C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Samples\Northwind.sdf>>

    Mais quand je créé moi-même un programme console je n’arrive pas à me connecter, ma chaine de connexion est mauvaise, c'est pourtant la même que ci-dessus avec les \ en double
    J’ai ce message d’erreur :

    Échec d'une tentative d'attachement d'une base de données nommée automatiquement pour le fichier C:\\Program Files\\Microsoft SQL Server Compact Edition\\v3.5\\Samples\\Northwind.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.
    (je n’ai pas de serveur IIS et c’est tous du local)

    Ma chaine de connection ressemble à ceci :
    con.ConnectionString = "Data Source=.\\SQLEXPRESS; AttachDbFilename = C:\\Program Files\\Microsoft SQL Server Compact Edition\\v3.5\\Samples\\Northwind.sdf ;Integrated Security=True;Connect Timeout=30;User Instance=True";
    l’essemble de mon code reduit au minimum ressemble à ceci :

    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
     
    using System;
    using System.Configuration;
    using System.Collections.Generic;
    using System.Text;
    using System.Data.SqlClient;
    using System.Data;
    using System.Data.Sql;
    using System.IO;
    using System.Data.Common;
    using System.Collections;
    using System.Reflection;
     
    namespace ConsoleApplication2
    {
     
        class Program
        {
           static void Main(string[] args)
            {
                System.Data.SqlClient.SqlConnection con;
                con = new System.Data.SqlClient.SqlConnection();
       try
        {
            con.ConnectionString = "Data Source=.\\SQLEXPRESS; AttachDbFilename = C:\\Program Files\\Microsoft SQL Server Compact Edition\\v3.5\\Samples\\Northwind.sdf ;Integrated Security=True;Connect Timeout=30;User Instance=True";
            con.Open();
     
       }
        catch (Exception e)
        {
            Console.WriteLine("L'erreur suivante a été rencontrée :" + e.Message);
        } 
       Console.WriteLine("Fin OK");
            }
        }
    }
    D’où peut bien venir le problème ?
    Je suppose que certain using sont inutiles aussi,
    Je n’ai pas compris la nuance entre les fichiers *.sdf et *.MDF

    Merci de vos conseils,

    Henri

  2. #2
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Ca ne viendrait pas des espaces dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...Program Files\\Microsoft SQL Server Compact Edition...
    ???

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Bonjour,
    si la question est : "comment ouvrir une connexion vers un BDD";
    moi j’utilise ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dataConnection.ConnectionString = "Server=" + serveur + ";Database="+nom_bdd+";User ID="+user+";Password="+mdp+";";
    dataConnection.Open();
    Command.Connection = dataConnection;

    serveur est l'adresse ip du serveur \ le nom de l'instance SQL ex : 127.0.0.1\SQL_SERVEUR si ta machine est utilisée comme serveur.
    nom_bdd est la nom ta base de données
    user est la nom d'un utilisateur autorisé ("sa" pour commencer mais à changer après les tests !)
    nom_bdd est le mot de passe correspondant (le mot de l'utilisateur de passe a été configuré lors de l'installation de l'instance SQL serveur). Sinon libre à toi de creer un utilisateur avec les bons droits et un mot de passe.

    en gros la chaine donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataConnection.ConnectionString = "Server=127.0.0.1\\SRV_BDD;Database=bdd;User ID=admin;Password=xxxxxx;"

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    D'autre part :

    Important Si vous utilisez Windows Vista, vous ne pouvez pas vous connecter au fichier Northwind.sdf si Visual Studio est exécuté en mode non-administrateur. Pour établir une connexion au fichier Northwind.sdf, le fichier de base de données ne doit pas se trouver dans le répertoire Windows, Program Files ou sur l'unité système. Il doit être dans un répertoire utilisateur ou sur un autre lecteur. Pour vous connecter à Northwind.sdf, démarrez Visual Studio en mode Exécuter en tant qu'administrateur.
    Cf :
    http://msdn.microsoft.com/fr-fr/library/bb896143.aspx

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 237
    Par défaut
    Bonjour,

    J’ai passé un peu de temps sur divers site de Microsoft, j’ai trouvé une info me suggérant d’installer << Microsoft SQL Server Management Studio Express>> ensuite j’ai installé la base AdventureWorksDB et avec cette ligne de commande :
    con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\sqlexpress\\AdventureWorks_Data.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
    C’a fonctionne a merveille pour le moment,
    Notez que je ne comprends toujours pas pourquoi avec un Dataset, un bindingsource et un tableAdaptater c’a a toujours fonctionné et pas avec une ConnectionString ?
    Pas plus que je n’ai compris la difference entre des fichier *.sdf et *.mdf ?

    J’avance,
    Merci à tous

    Henri

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

Discussions similaires

  1. [D7] Paramètrer une chaine de connexion
    Par EMC51 dans le forum Delphi
    Réponses: 1
    Dernier message: 15/11/2006, 14h32
  2. Réponses: 4
    Dernier message: 20/10/2006, 16h19
  3. Réponses: 1
    Dernier message: 21/07/2006, 12h36
  4. [VB.Net 2.0/xsd] Comment passer une chaine de connexion dynamiquement ?
    Par graphicsxp dans le forum Accès aux données
    Réponses: 4
    Dernier message: 21/07/2006, 11h20

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