Connessione a un db mysql remoto in c#

di il
12 risposte

Connessione a un db mysql remoto in c#

Salve a tutti
Sto realizzando un'applicazione che deve accedere a dati da un database mysql
che è allocato in hosting , ma non so proprio come connettermi al db.
Se qualcuno conosce la risposta al mio quesito potrebbe rispondermi?
Grazie del vostro aiuto
Nico8

12 Risposte

  • Re: Connessione a un db mysql remoto in c#

    Nel 99.9% dei casi, non puoi.

    Per controllare se puoi connetterti al DB remoto, devi avere ALMENO le seguenti informazioni:

    1) IP della macchina su gira il DB
    2) PORTA su cui il DB ascolta (per MySQL la porta di default e' la 3306, ma potrebbe essere un'altra)

    quindi con telnet (o software equivalente), devi fare:
    
    telnet IP PORTA
    
    Si ti connetti, allora e' possibile, altrimento no!

    E questa e' la prima parte della storia.

    Se riesci a conneterti, allora devi usare la libreria C# Connector/Net



    e la documentazione la trovi qui:



    Ma se non sapevi queste (banalissime) cose, allora mi sa che hai ancora parecchio da studiare, perche' non ci si connette semplicemente al DB, ma:

    1) devi creare una connessione verso uno specifico IP/PORTA/DATABASE usando USER/PASSWORD
    2) devi creare una transazione
    3) devi creare lo statement
    4) devi inizializzare lo statement
    5) devi eseguire lo statement
    6) se e' una query, devi scandire il resultset della query
    7) devi chiudere il result set
    8 ) devi chiudere loo statement
    9) devi chiudere la transazione
    A) devi chiudere la connessione

    E questa e' la versione semplice
  • Re: Connessione a un db mysql remoto in c#

    In effetti è la prima volta che mi cimento in questo ambito,
    Tuttavia se questo metodo non dovesse funzionare , come potrei fare
    Per realizzare un applicativo con queste caratteristiche?
  • Re: Connessione a un db mysql remoto in c#

    Ti è stato risposto in

    http://www.pierotofy.it/pages/extras/forum/16/1055805-connessione_database_mysql_remoto_in_c/

    dove ne stai parlando
  • Re: Connessione a un db mysql remoto in c#

    Lo so ma stavo cercando altre idee, comunque
    La maggior parte degli applicativi si basano su uno scambio tra client e
    Una base di dati; quindi mi chiedo perché si così
    Complicato realizzarla.
    Cosa ne pensi
    Comunque ti ringrazio per i consigli precedenti
  • Re: Connessione a un db mysql remoto in c#

    Prego ma non ti ho ancora dato consigli, ho solo notato il tuo crossposting
  • Re: Connessione a un db mysql remoto in c#

    Non peccare mai più di cross posting su questo forum, altrimenti ti banno

    Aggiungo qualche info importante:
    1. quando ti connetti al db da remoto fai passare tutti i dati in chiaro sulla rete.
    Ha senso quindi farlo solo attraverso un tunnel che cripta la comunicazione, per esempio una VPN.

    2. mi ricollego alla frase "La maggior parte degli applicativi si basano su uno scambio tra client e una base di dati".
    Quando l'applicazione e la base dati non risiedono su una intranet aziendale, a meno che non si usino le vpn stai tranquillo che il client non si connette al db direttamente ma dialoga con un Web Service.
  • Re: Connessione a un db mysql remoto in c#

    Nico8 ha scritto:


    La maggior parte degli applicativi si basano su uno scambio tra client e
    Una base di dati; quindi mi chiedo perché si così
    Complicato realizzarla.
    Perché normalmente il client e il server stanno nella stessa rete privata, non su internet.
    Questo cambia completamente le cose, per questioni di sicurezza.
    Cosa ne pensi
    Penso che alcuni servizi esistono, proprio per questo tipo di utilizzo, ad esempio

    "http://www.freemysqlhosting.ne"
  • Re: Connessione a un db mysql remoto in c#

    Penso che alcuni servizi esistono, proprio per questo tipo di utilizzo, ad esempio

    "http://www.freemysqlhosting.ne"
    E' free fino a 5mb di database
    Inoltre bisogna vedere anche le performance e la sicurezza.

    Può capitare di dover cambiare hosting in tempi rapidi e in questo caso per far funzionare l'applicazione è necessario trovare un provider che fornisca lo stesso tipo di servizio.

    Il Web Service risolve anche questo problema.
  • Re: Connessione a un db mysql remoto in c#

    Toki ha scritto:


    Penso che alcuni servizi esistono, proprio per questo tipo di utilizzo, ad esempio

    "http://www.freemysqlhosting.ne"
    E' free fino a 5mb di database
    Beh ... per fare le prove è più che sufficiente ... poi se si vuole la bicicletta, si deve pedalare ...
    Inoltre bisogna vedere anche le performance e la sicurezza.
    Mi dicono essere buone, sicuramente se paghi ...
    Può capitare di dover cambiare hosting in tempi rapidi e in questo caso per far funzionare l'applicazione è necessario trovare un provider che fornisca lo stesso tipo di servizio.
    Sicuramente ...
  • Re: Connessione a un db mysql remoto in c#

    Ciao, hai risolto?

    Ti volevo dare un'altra idea (molto banale ed elementare):
    invece di collegarti direttamente al db, crei una o più pagine php e spedisci i dati col comando

    string result = wc.DownloadString("http://indirizzo/pagina.php?dato1" + textBox1.Text + "&dato2=" + textBox2.Text);

    Poi se invece devi fare molte query, questo metodo penso non vada bene..

    PS ti scrive uno che ne sa proprio poco, ma nel mio caso per quello che dovevo fare, questa soluzione è andata bene.. anche perchè se poi devi modificare la query, modifichi la pagina php e non il programma (che poi devi reinstallare su tutti i PC)
  • Re: Connessione a un db mysql remoto in c#

    >string result = wc.DownloadString("http://indirizzo/pagina.php?dato1" + textBox1.Text + "dato2=" >+ textBox2.Text);
    è php?,bello sembra c# ,forse ho capito male io ma mi sembra che manchi un "e" commerciale tra i due campi nella querystring.. ,
  • Re: Connessione a un db mysql remoto in c#

    Hai ragione mi sono perso un &.. correggo subito
    Cmq è una semplice chiamata in c# ad una pagina php che ho sul server..
    La chiamata completa è:
    
    //codice da inserire nel programma c#
         WebClient wc = new WebClient(); 
         try
         {
            string result = wc.DownloadString("http://indirizzo_sito/pagina.php?nome=" + textBox1.Text);
          }
          catch
          {
              //fai qualcosa se la pagina è irragiungibile
          }
    

    Poi tutto il codice php e la query è su pagina.php, che avrà un codice tipo (mancano parti di codice e dichiarazioni di variabili..):
    
    ...
    $dato1=$_GET["dato1"];
    $link = mysql_connect($DB_host, $DB_user, $DB_password);
    $db_selected = mysql_select_db($DB_name, $link);
    ...
    mysql_query($query);
    ...
    
    echo $risultato  //valore che viene restituito
    
Devi accedere o registrarti per scrivere nel forum
12 risposte