RunUO-FR
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
RunUO-FR

Forum de support pour RunUO en français.
 
AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

 

 [base de donnée]Comment utilisé une base de donnée mysql

Aller en bas 
2 participants
AuteurMessage
Andalor




Messages : 1
Date d'inscription : 07/05/2009

[base de donnée]Comment utilisé une base de donnée mysql Empty
MessageSujet: [base de donnée]Comment utilisé une base de donnée mysql   [base de donnée]Comment utilisé une base de donnée mysql Icon_minipostedJeu 7 Mai - 18:56

Bonjour,

Je désire enregistrer une partie des données de mon serveur sur une base de données mysql (dans le but de pouvoir faire des intéractions via un site internet, du style commande et création via le site internet).
donc je voulais connaître le code C# à employer pour :

- Se connecter à un serveur de base de donnée mysql qui est distant, à un compte et un mot de passe.
- Exécuter une requête Sql sur ce serveur (Insert, delete, select)
- Récupérer le résultat de ma requête SQL dans une variable c#

Merci de votre aide Smile
Revenir en haut Aller en bas
Scriptiz

Scriptiz


Messages : 102
Date d'inscription : 02/09/2008
Localisation : Belgium

[base de donnée]Comment utilisé une base de donnée mysql Empty
MessageSujet: Re: [base de donnée]Comment utilisé une base de donnée mysql   [base de donnée]Comment utilisé une base de donnée mysql Icon_minipostedDim 13 Sep - 16:53

Bonjour Andalor.

Pour utiliser une base de donnée MySQL avec ton serveur RunUO tu as deux choix selon l'accès que tu as à ta base de données.

1) Si tu peux faire des accès extérieurs à ta base de donnée ou si ton site et ton serveur RunUO cohabite sur le même host/serveur/machine :
Voici un exemple pour ce cas là.
Code:
using System;
using System.Data;
using System.Data.Odbc;

namespace Server.Connector
{

    /**
    * NOTE IMPORTANTE
    *
    * CETTE METHODE FONCTIONNE AVEC LES SERVEURS AUTORISANT LES CONNECTIONS EXTERNES A LA BASE DE DONNEES
    */


    // Cette classe sert à entourer les traitements avec la base de données.
    public class DatabaseConnector
    {
        // Handler pour la base de données
        public delegate void DatabaseRequestHandler(OdbcDataReader dataReader, object arguments);

        // Attention : l'installation de http://dev.mysql.com/downloads/connector/odbc/5.1.html est nécessaire.
        public static System.Data.Odbc.OdbcConnection GetConnection()
        {
            string connStr = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=ton.serveur.data;UID=ton_login;DATABASE=la_database;Password=ton_password";
            System.Data.Odbc.OdbcConnection oConn = new System.Data.Odbc.OdbcConnection(connStr);
            return oConn;
        }

        // Envoie un GET vers la base de données pour lire des données. Les données retournés pourront être traités par le
        // handler avant d'être fermée.
        public static void SendGet(string request, DatabaseRequestHandler handler, object arguments)
        {
            System.Data.Odbc.OdbcConnection oConn = GetConnection();

            try
            {
                oConn.Open();
                // Query et autres
                Console.WriteLine("Successfully connected to the database");

                OdbcCommand oComm = new OdbcCommand();
                oComm.Connection = oConn;
                oComm.CommandText = request;
                OdbcDataReader oReader = oComm.ExecuteReader(CommandBehavior.CloseConnection);

                // Demander au delegate de traiter les données
                handler(oReader, arguments);


            }
            catch (OdbcException caught)
            {
                // Traitement de l'erreur
                Console.WriteLine(caught.Message);
                Console.Read();
            }
            finally
            {
                oConn.Close();
                oConn = null;
            }
        }
    }
}



2) Si ton serveur RunUO et ton site sont sur des hosts/serveurs/machines différentes et que tu n'a pas d'accès via l'extérieur à ta base de donnée MySQL :
Dans ce cas là, tu va devoir créer des scripts sur ton serveur web (par exemple en PHP), que tu appelleras en y donnant des paramètres GET ou POST à partir de ton serveur RunUO. Le script étant en local il pourra alors traiter les données reçues et faire les modifications/retraits nécessaires dans la base de données.
Voici un exemple.
Code:
            // Create a 'WebRequest' object with the specified url.
            WebRequest req = WebRequest.Create("http://www.ton-site.fr/scripts/ton_script.php?pass=x9!M1$&name=John&age=21");

            // Send the 'WebRequest' and wait for response.
            WebResponse res = req.GetResponse();

            // Obtain a 'Stream' object associated with the response object.
            Stream stream = res.GetResponseStream();

            Encoding encode = Encoding.GetEncoding("utf-8");

            // Pipe the stream to a higher level stream reader with the required encoding format.
            StreamReader readStream = new StreamReader(stream, encode);

            string response = readStream.ReadToEnd();

            readStream.Close();
            res.Close();

Ici, il serait utile pour vraiment sécuriser ton script, d'utiliser des "tokens" générés en fonctions de certaines valeurs pour vérifier que la requête provient bien de ton serveur RunUO. Dans le cas présent, je passe 3 paramètres au scripts php:
pass=x9!M1$
name=John
age=21

Mon script php pourrait utiliser pass pour vérifier que c'est le bon pass, ensuite insérer dans la base de donnée un utilisateur qui s'appelle John et a 21 ans. Ensuite il afficherais juste OK si tout c'est bien passé ou KO s'il y a eu un soucis. Je pourrais alors récupérer ce OK ou KO ans response.


Voilà j'espère t'avoir aider et avoir été claire Smile
Revenir en haut Aller en bas
http://uoclassic.free.fr/
 
[base de donnée]Comment utilisé une base de donnée mysql
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Héritage, virtual/override, base

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RunUO-FR :: Problèmes et questions :: Comment faire ?-
Sauter vers: