[Résolu] [DB - AL] Problème BDD .exe

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
maliimaloo
Messages : 45
Inscription : 28 Sep 2017 19:06

[Résolu] [DB - AL] Problème BDD .exe

Message par maliimaloo » 26 Avr 2018 16:41

Bonjour, je viens car j'ai un petit problème qui doit être simple mais qui n'est référé nuls parts et qui en aideront plus d'un je pense.

Donc mon problème c'est que quand je lance un build depuis Unity, tout fonctionne correctement (la connexion BDD, Les algorithmes connexion etc...), aucun problème mais quand je crée un buildSettings et que je lance mon jeu depuis un .exe, la connexion à la BDD ne s'effectue plus.

Donc mon dossier Plugins : J'ai MySql.Data.dll, System.Data.dll, System.Drawning.dll

Mon scripts connexion BDD

Code : Tout sélectionner

using UnityEngine;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;

public class ConnectorBDD : MonoBehaviour
{
    public string host;
    public string database;
    public string username;
    public string password;

    public static MySqlConnection con;

    void Awake()
    {
        string constr = "server=" + host + ";uid=" + username + ";pwd=" + password + ";database=" + database + ";";

        try
        {
            con=new MySqlConnection(constr);
            con.Open();
        }
        catch (IOException Ex)
        {
            Debug.Log(Ex.ToString());
        }

        DontDestroyOnLoad(this);
    }
}
Pièces jointes
Sans titre.png
Sans titre.png (457.9 Kio) Consulté 3230 fois
Dernière édition par maliimaloo le 28 Avr 2018 08:02, édité 1 fois.

maliimaloo
Messages : 45
Inscription : 28 Sep 2017 19:06

Re: [DB - AL] Problème BDD .exe

Message par maliimaloo » 27 Avr 2018 04:57

J'ai fait un petit test afin de vous aider à comprendre un peu plus le problème, j'ai testé de mettre un "connexionStatus.Texte = connect" en dessous de ma ligne con.Open() et le texte ne se change pas, alors que quand je place la ligne avant "con=new MySqlConnection(conster);" le texte se change, ce qui veut dire que ça va bien dans le Try, mais que ça exécute "con=new MySqlConnection(constr);" mais que après sa n'exécute pas "con.Open()".

Le "connectTest1" s'exécute, le "connectTest2" s'éxecute aussi mais le "connectTest3" ne s'exécute pas. Donc le problème c'est que ça veut pas faire "con. Open()" alors que dans mon Unity sa l'exécute correctement, mais dans un build sa ne veut plus.

Code : Tout sélectionner

        try
        {
            connexionStatus.text = "connectTest1";
            con=new MySqlConnection(constr);
            connexionStatus1.text = "connectTest2";
            con.Open();
            connexionStatus2.text = "connectTest3";
        }

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6216
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB - AL] Problème BDD .exe

Message par boubouk50 » 27 Avr 2018 09:32

Dans un build, les données sont compilées, donc l'accès pas forcément autorisé, contrairement à un test éditeur.
Où est ta BDD? Il te faudrait la mettre dans StreamingAssets pour qu'elle ne soit pas compilée et accessible.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

maliimaloo
Messages : 45
Inscription : 28 Sep 2017 19:06

Re: [DB - AL] Problème BDD .exe

Message par maliimaloo » 27 Avr 2018 12:33

Salut, ma BDD est en localhost avec Wampserver, et je n'ai pas de fichier de BDD, elle se connecte automatiquement au PhpMyAdmin.

Comment me conseil tu de procédé, que que je dois mettre dans StreamingAssets etc... ?

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6216
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB - AL] Problème BDD .exe

Message par boubouk50 » 27 Avr 2018 12:42

Au temps pour moi. Je zieutais le deuxième message et j'ai pensé qu'elle pourrait être embarquée.
La mettre dans StreamingAssets reviendrait à la rendre publique ce qui n'est surement pas une bonne idée.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

maliimaloo
Messages : 45
Inscription : 28 Sep 2017 19:06

Re: [DB - AL] Problème BDD .exe

Message par maliimaloo » 27 Avr 2018 13:04

Exactement, donc que que je peux faire pour remédier à mon problème :p ?

Le problème vient peut-être parce que c'est une BDD en loclhost avec Wampserver donc elle n'est pas online, donc si je prends une vraie base de données peut-être que cela devrait fonctionner ??

Mais j'ai un petit problème qui survient, dans mes pare-feu j'ai autorisé la connexion au port 3306, mais quand je veux me connecter à n'importe quelle BDD externe, j'obtiens cette erreur : MySqlException: Unable to connect to any of the specified MySQL hosts.

maliimaloo
Messages : 45
Inscription : 28 Sep 2017 19:06

Re: [DB - AL] Problème BDD .exe

Message par maliimaloo » 28 Avr 2018 08:00

Bonjour, donc mon problème et régler, en demandent à mon beau-frère qui est en bac +4 programmations mon problème, il m'a expliqué entièrement le problème que je vais vous expliquer ici et vous redirigez vers un lien qui vous permettront de régler le problème de la connexion à une BDD externe, sans avoir d'erreur : MySqlException: Unable to connect to any of the specified MySQL hosts.

Le problème :

Donc la première chose que vous devez savoir c'est qu'un programme ne peut pas se connecter à une BDD externe car le seul moyen qu'un programme puis communiquer avec une BDD est qu'elle soit sur le même serveur, pour cela que le problème ne survient pas quand vous travaillez avec une BDD en localhost car elle se trouve sur votre Pc donc sur le même serveur.

Pour qu'il communique via une BDD externe, il te faut la BDD, un programme sur le même serveur pour l'exploiter et du script pour interagir avec le programme.

Vous allez me dire comment mettre un programme sur le même serveur d'une BDD, c'est pour cela que je vous redirige vers ce lien qui vous apprend tous (Création BDD, La connexion avec le Php, l'utilisation de la BDD, la création d'un system de Login) que voici :
j'espère que cela aidera plus d'un qui aurait eu le même problème et qui n'arrivais pas à le régler.

Et je tiens à remercier Boubouk50 pour avoir essayé de m'aider à régler le problème.

Répondre

Revenir vers « (C#) CSharp »