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 :

C# - Bases de données


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut C# - Bases de données
    Bonjour,

    Je ne suis pas sur de ce que j'avance, mais Visual Studio propose un connecteur OLEDB pour se connecter aux différentes bases de données.

    Je dois me connecter à une première base de données Oracle, et une seconde base de données MySql qui tourne sur un Wamp Server. Est-il préférable d'utiliser le client Oracle et le client MySql pour me connecter aux bases de données ou alors d'utiliser le connecter OLEDB intégré à Visual Studio?

    Autre question, pensez-vous qu'il est préférable d'utiliser Microsoft SQL Server ou le MySql que j'utilise actuellement sur Wamp Server (quand à Oracle, elle m'est imposée, je n'ai pas le choix)?

    Merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    OleDB est une vieille techno, et les connections aux BDD avec OleDB ne sont pas très optimisées. Il vaut toujours mieux utiliser le connecteur spécifique quand il existe.

    Pour ta 2e question, personnellement je choisirais plutôt SQL Server car il s'intègre mieux avec .NET et Visual Studio, et supporte Linq to SQL et Entity Framework. Mais évidemment c'est plus cher, sauf si tu peux te contenter de la version Express

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Par défaut
    Tu le sais peut-être mais n'oublie pas de rendre ton modèle indépendant du type de base de donnée que tu utilises. Vu que tu hésites, il se pourrait que tu change d'avis en cours de route.

    Il y a un tutoriel sur developpez très bien à ce sujet.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par AsPrO Voir le message
    Il y a un tutoriel sur developpez très bien à ce sujet.
    Si tu lui mettais le lien ça irait plus vite je pense

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 71
    Par défaut
    Merci tomlev!

    Oui je suis très intéressé par ça AsPrO, si tu pouvais me donner le lien ce serait cool

    En ce qui concerne Microsoft SQL Server, je l'ai gratuitement car comme je fais un master en informatique, avec mon matricule étudiant j'ai accès à la plupart des logiciels Microsoft gratuitement via MSDN.

    Par contre, j'ai réalisé le code pour les connexions avec les clients respectifs pour les bases de données, je n'utilise pas de DataSet, et je n'utilise pas l'utilitaire de connexion fourni dans Visual Studio (en cliquant sur l'onglet Données, Ajouter une source de données, ...)

    Voici mon code (tout bête, ce sont des tests pour pouvoir commencer mon projet) :

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    static void Main(string[] args)
            {
     
    //-------------------------------ORACLE 10G XE---------------------------------------------------------
     
                string Ochaine = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.3)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));User Id=Damien;Password=Damien;Connection Lifetime=120;Persist Security Info=False;";
                OracleConnection OConnexion = new OracleConnection();
                OConnexion.ConnectionString = Ochaine;
     
                try
                {
                    OConnexion.Open();
                    Console.WriteLine("Connexion Oracle ouverte");
     
                    OracleCommand query = new OracleCommand();
     
                    query.Connection = OConnexion;
                    query.CommandText = "SELECT * FROM etudiant";
     
                    OracleDataReader reader;
                    reader = query.ExecuteReader();
     
                    while (reader.Read())
                    {
                        Console.WriteLine(reader[0].ToString());
                    }
     
                    OConnexion.Close();
                    Console.WriteLine("Connexion Oracle fermée");
                }
                catch(Exception e)
                {
                    Console.WriteLine(e);
                }
     
                Console.WriteLine("");
     
    //---------------------------MySql---------------------------------------------
     
                string Pchaine = "Server=192.168.0.3;Database=test;Uid=Dam;Pwd=Dam;";
                MySqlConnection Pconnexion = new MySqlConnection();
                Pconnexion.ConnectionString = Pchaine;
     
                try
                {
                    Pconnexion.Open();
                    Console.WriteLine("Connexion MySql ouverte");
     
                    MySqlCommand cmd = Pconnexion.CreateCommand();
                    MySqlDataReader reader;
                    cmd.CommandText = "SELECT * FROM essai";
     
                    reader = cmd.ExecuteReader();
                    while(reader.Read())
                    {
                        Console.WriteLine(reader[0].ToString());
                    }
     
                    Pconnexion.Close();
                    Console.WriteLine("Connexion MySql fermée");
                }
                catch(Exception e)
                {
                    Console.WriteLine(e);
                }
            }
    Pensez-vous que c'est correct (le code fonctionne parfaitement) ou qu'il est préférable d'utiliser un DataSet lié à une source de données (et donc je suppose passer par l'utilitaire de Visual Studio pour ajouter une source de données)?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je pense qu'il parle de ce tuto.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par AsPrO Voir le message
    Il y a un tutoriel sur developpez très bien à ce sujet.
    Citation Envoyé par h2s84 Voir le message
    Je pense qu'il parle de ce tuto.
    Je pense qu'il s'agit plutôt de celui-ci, à lire absolument

    Citation Envoyé par AsPrO Voir le message
    Tu le sais peut-être mais n'oublie pas de rendre ton modèle indépendant du type de base de donnée que tu utilises. Vu que tu hésites, il se pourrait que tu change d'avis en cours de route.
    Dans le principe, je suis tout à fait d'accord... Après, il faut voir qu'en pratique il est très difficile de rendre le code vraiment indépendant de la base utilisée, car chaque SGBD a ses caractéristiques propres, et le langage SQL n'est malheureusement pas complètement standardisé...

    Cela dit, c'est vrai qu'utiliser la couche d'abstraction d'ADO.NET peut nettement faciliter le travail pour changer de SGBD

    Citation Envoyé par rousseau_damien Voir le message
    Pensez-vous que c'est correct (le code fonctionne parfaitement) ou qu'il est préférable d'utiliser un DataSet lié à une source de données (et donc je suppose passer par l'utilitaire de Visual Studio pour ajouter une source de données)?
    Les datasets ont leurs avantages et leurs inconvénients... si tu es débutant, je te conseille plutôt de faire sans, ça te permettra de mieux comprendre ce qui se passe vraiment. Je vois beaucoup de débutants qui ne savent rien faire sans les datasets et qui ne comprennent pas vraiment ce qu'ils font quand ils les utilisent...

    Sinon il y a une autre option intéressante, c'est d'utiliser un ORM comme Entity Framework ou Linq to SQL. Linq to SQL est un peu plus facile mais aussi beaucoup plus limité, et il ne fonctionne qu'avec SQL Server. EF est plus complexe, mais offre beaucoup plus de souplesse et permet en théorie de fonctionner avec n'importe quelle SGBDR, à condition qu'il y ait un provider compatible EF.

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

Discussions similaires

  1. Problème Base de données et CRecordSet
    Par LE CHAKAL dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2002, 11h59
  2. connexion base de donné
    Par saidi dans le forum MFC
    Réponses: 3
    Dernier message: 07/08/2002, 22h22
  3. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  4. Bases de données
    Par dev dans le forum C++Builder
    Réponses: 4
    Dernier message: 01/07/2002, 22h55
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18

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