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 :

Ajouter une référence pour Maria DB à Visual Studio


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 242
    Points : 133
    Points
    133
    Par défaut Ajouter une référence pour Maria DB à Visual Studio
    Bonjour,

    Je suis en tain de tester la possibilité de passer de SQL Server à Maria DB

    Dans mon appli en Visual Studio 2019, j'obtiens des résultats surprenant lorsque j'interroge la BDD ( Maria 10.2)

    Certains enregistrements n'apparaissent pas dans le résultat de ma requête.
    J'ai vérifié ma requête en l'exécutant directement sur la console de phpMyadmin, et là tous mes enregistrements apparaissent.

    Je pense que j'utilise la mauvaise référence avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    using MySql.Data.MySqlClient;
     
    et les outils
     
    public MySqlConnection dataconnectionMySql = new MySqlConnection();
    public MySqlCommand dataCommandMySql = new MySqlCommand();
    Mais sur le net je n'ai pas trouvé un Assembly spécifique à Maria DB à rajouter.

    Merci.

  2. #2
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2015
    Messages : 26
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    J'utilise régulièrement l'assembly MySqlCLient pour accéder à des bases MariaDB, jusqu'ici je n'ai eu aucun souci.

    La première chose à faire est de vérifier que la requêter envoyée par votre application est la même que celle que vous exécutez manuellement dans phpmyadmin.
    Et là, il va falloir passer par une bonne vieille session debug des familles.
    Une fois cette vérification effectuée, si la requête est bien la même, alors il faudra identifier les enregistrements manquants, et partir de là pour analyser ce qui peut bien bloquer.

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 242
    Points : 133
    Points
    133
    Par défaut
    Bonjour Phil,

    Il s'agit de lire une table qui va me retourner quels sont les champs à sélectionner pour afficher des lignes de commande client.
    On construit la requête, en ajoutant à la chaîne 'SELECT, la liste des champs à afficher.

    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
     private string InitQueryForReadingLinesMySQL()
            {
                string strResult = "";
                OurConnection cn = new OurConnection();
                MySqlDataReader dtrMySql = null;
     
                try
                {
                    cn.OuvreConnection(m_iTypeDataBase);
                    cn.dataCommandMySql.CommandText = "SELECT TBL_Champ FROM Affichage WHERE TBL_Table = '" + cn.GetClefTable(m_strTable) + "'";
                    cn.dataCommandMySql.CommandText += " AND TBL_Affiche = 1";
                    cn.dataCommandMySql.CommandText += " ORDER BY TBL_Record";
     
                    dtrMySql = cn.dataCommandMySql.ExecuteReader();
                    if (dtrMySql.HasRows)
                    {
                        strResult = " SELECT ";
                        string strField;
     
                        while (dtrMySql.Read())
                        {
                            strField = dtrMySql.GetString(0).Trim();
                            strResult += (" " + strField + ",");
                        }
     
                        // Delete the comma at the end of the string
                        strResult = strResult.Trim().Substring(0, strResult.Length - 2);
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message, "Error at point 31");
                    strResult = "";
                }
     
                if (dtrMySql != null)
                {
                    if (!dtrMySql.IsClosed)
                    {
                        dtrMySql.Close();
                        dtrMySql.Dispose();
                    }
                }
     
                cn.FermeConnection();
                return (strResult);
            }
    Si je mets un point d'arrêt dans la boucle while, je vois bien la requête se construire champ après champ.
    A partir de :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TBL_Champ FROM Affichage WHERE TBL_Table = 'vCOL' AND TBL_Affiche = 1 ORDER BY TBL_Record

    j'obtiens:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT  CDL_Ligne, CDL_Designation, CDL_Qte, Available, CDL_PrixUnitaire, CDL_TauxRemise, PriceWithDiscount,
     TOTAL, CDL_DateDemandee, CDL_Situation, CDL_TauxTVA, CDL_QteLivree, MUL_Stock, CDL_FollowUpMan,
     CDL_FollowUpDate, CDL_FollowUpComment

    or dans ce résultat, il manque 2 champs:
    CDL_Unite
    CDL_Reference

    Quand depuis la console j'entre par copier -coller la même requête:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TBL_Champ FROM Affichage WHERE TBL_Table = 'vCOL' AND TBL_Affiche = 1 ORDER BY TBL_Record

    Je vois bien apparaître tous les champs dont les 2 manquants!

    Merci.

  4. #4
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Citation Envoyé par HENRYC Voir le message
    Je vois bien apparaitre tous les champs dont les 2 manquants!
    Pas d'erreur d'inattention ? Tu es bien certain de pointer sur la même base dans les deux cas (depuis ton application et ta console) ?

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 242
    Points : 133
    Points
    133
    Par défaut
    Bonjour Max,

    Et non pas d'erreur! (J'aurai bien aimé )
    Pour la simple raison que je n'ai qu'une seule base de données MY SQL, celle qui me sert à faire mes essais.

    HENRYC

  6. #6
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 905
    Points : 1 923
    Points
    1 923
    Par défaut
    Tu es sûr que le champ TBL_Affiche vaut bien 1 pour les deux champs manquant dans ta table ?

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/01/2019, 23h25
  2. Réponses: 0
    Dernier message: 30/05/2018, 15h55
  3. Ajouter une référence sans Visual Studio installé
    Par crazyfab2 dans le forum EDI/Outils
    Réponses: 1
    Dernier message: 22/05/2012, 10h34
  4. Réponses: 3
    Dernier message: 06/09/2009, 18h22
  5. Réponses: 6
    Dernier message: 07/12/2007, 11h29

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