Impossibile connettere il database MySql in locale

di terrasamba77 il
18 risposte

Ciao a tutti,

dopo circa 8 anni, sto rispolverando la programmazione col c#.

Sto creando un'applicazione in cui ho la possibilità di inserire dei dati, ma non riesco a connettermi col database MySql in locale. L'errore restituito è “unable to connect to any of the specified MySql hosts”

Vi posto la porzione di codice del Button che dovrebbe salvare i dati, vi ringrazio anticipatamente:

private void button1_Click(object sender, EventArgs e)
{
    string MyConnection2 = "Server=127.0.0.1;Port=3306;Database=student;Uid=root;Pwd=;";
MySqlConnection mySqlConnection = new MySqlConnection(MyConnection2);

try
{
    
    
    string Query = "insert into student.studentinfo(idStudentInfo,Name,Father_Name,Age,Semester) values('" + this.IdTextBox.Text + "','" + this.NameTextBox.Text + "','" + this.FnameTextBox.Text + "','" + this.AgeTextBox.Text + "','" + this.SemesterTextBox.Text + "');";
    .
    MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);
    
    MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);
    MySqlDataReader MyReader2;
    MyConn2.Open();
    MyReader2 = MyCommand2.ExecuteReader();     
    MessageBox.Show("Data Saved");
    while (MyReader2.Read())
    {

    }
    MyConn2.Close();
   }
   catch (Exception ex)
   {
    MessageBox.Show(ex.Message);
   }

}

18 Risposte

  • Mysql è correttamente installato? Ti colleghi con il workbench a prescindere dal codice?

  • 30/11/2023 - oregon ha scritto:


    Mysql è correttamente installato? Ti colleghi con il workbench a prescindere dal codice?

    Ciao, ho fatto un test della connessione e funziona (ovviamente con xampp attivato). Forse dovrei inserire il progetto nella cartella htdocs di xampp per farlo dialogare con il database locale? Grazie

  • Ciao,
    nel try , nel messaggio modifica in MessageBox.Show(ex.Message + "\n\n" + ex.StackTrace); 

    Esamina nel dettaglio del messaggio le altre informazioni relative all'errore

  • Probabilmente non hai scaricato ed installato il connector .net per mysql

  • Buongiorno, scusate se rispondo solamente adesso, comunque grazie ai vostri consigli ho risolto. Grazie ancora

  • Se dici esattamente come hai risolto, potrebbe servire a qualcun altro che legge questo thread.

    Serve a questo un forum.

  • 04/12/2023 - oregon ha scritto:


    Se dici esattamente come hai risolto, potrebbe servire a qualcun altro che legge questo thread.

    Serve a questo un forum.

    Ciao, certamente, hai ragione, ho editato il mio primo messaggio mettendo il codice che, allo stato attuale, funziona

  • A proposito di connessione al database, non so se dovrei aprire una nuova discussione, ma c'è un modo per connettersi ad un database remoto, usando sempre C#? Chiedo perchè, come ben sapete, la maggior parte degli hosting non permettono la connessione remota al DB. Sto sviluppando un'applicazione Windows Form, ma, mentre in locale si connette col codice sopra esposto, in remoto non lo fa. Si può fare Tunnelling in quale modo? Grazie

  • Mah, di solito la richiesta è su come collegarsi da remoto mai in locale…

    Ci dovrebbe essere già un 3d.

  • Usa una VPN, ovviamente NON esporre il DB su Internet

  • 09/12/2023 - oregon ha scritto:


    Usa una VPN, ovviamente NON esporre il DB su Internet

    Ti ringrazio, conosco le VPN, ed anche le VPS, ma non ho ben capito come dovrei implementare la cosa. Il db obbiamente è online, mi dovrei collegare da remoto con la mia Windows Form Applications. Avevo anche pensato, come opzione disperata, di fare una pagina PHP (che conosco bene) con i dati selezionati dal DB e di parsare quella pagina usando HTML AGILITY PACK. Ovviamente sarebbe molto meglio per me una connessione diretta al db, in modo da gestire le query da codice c#

  • In questi casi, la soluzione largamente condivisa, è realizzare un'applicazione Web Service da esporre. La tua app win form interroga il web service remoto. Il web service a sua volta dialoga col DBMS

  • 09/12/2023 - terrasamba77 ha scritto:


    db obbiamente è online

    In che senso? È accessibile solo da una intranet?

    Se è così appunto gai fue strade, vpn e il tuo client si comporta come se fosse nella intranet, oppure un web service (come ti hanno suggerito) e l'accesso al db sarà mediato da un servizio web.

    Ovviamente i dettagli implementativi delle due soluzioni non si possono discutere in questo stesso thread. Devi valutare e studiare le due possibilità in tutti gli aspetti ed eventualmente chiedere spiegazioni su singoli problemi della soluzione scelta. 

Devi accedere o registrarti per scrivere nel forum
18 risposte