Connessione a MariaDB da phpMyAdmin

di il
3 risposte

Connessione a MariaDB da phpMyAdmin

Ciao a tutti,

il mio problema sostanzialmente è questo, sto cercando di accedere a phpmyadmin da codice c# (ovviamente).
Non capisco come mai per effettuare solamente la connessione ci impiega 11 secondi.

Premetto che la mia è una prova che sto facendo.
Grazie mille.

String query3 = "SELECT IdDipendente FROM Ore_Dipendenti.Dipendenti WHERE IdDipendente = '18'";

MySqlCommand commandDatabase = new MySqlCommand(query3, databaseConnection);
MySqlDataReader reader;
databaseConnection.Open();
reader = commandDatabase.ExecuteReader();

while (reader.Read())
{
string[] row = { reader.GetString(0) };
MessageBox.Show(reader.GetString(0));
}
databaseConnection.Close();

3 Risposte

  • Re: Connessione a MariaDB da phpMyAdmin

    Ehhhh????
  • Re: Connessione a MariaDB da phpMyAdmin

    Aggiusta il titolo e il contenuto del thread.....
    Tu non ti stati connettendo a MariaDB da phpMyAdmin ma da un'applicazione C#.
    phpMyAdmin è un web tool di amministrazione che di certo non è scritto in C# ma in PHP.
  • Re: Connessione a MariaDB da phpMyAdmin

    Vale2501, vediamo se riesco ad aiutarti: hai creato un database MariaDB, usando phpMyAdmin, e adesso devi accedervi da c#. Non hai però scritto la stringa di connessione utilizzata per istanziare la classe "databaseConnection", cioè l'istruzione:

    MySqlConnection databaseConnection = new MySqlConnection(stringa di connessione);

    Probabilmente la velocità di collegamento, dipende da dove si trova il database, se è locale o remoto...

    Inoltre, la tua query3 contiene un comando SELECT che seleziona l'unica colonna "IdDipendente" quando il valore della stessa colonna è uguale a '18'. Quindi, se come penso l'IdDipendente del tuo database è univoco, ti restituirà sempre come unico risultato un solo record con il solo '18.'

    Magari, invece tu vorresti cercare nella tabella "Dipendenti" del database, il dipendente con Id='18'. Quindi il SELECT giusto sarebbe:

    SELECT * FROM Dipendenti WHERE IdDipendente='18'

    così ti restituisce un solo record (quello con Id='18') della tabella "Dipendenti", ma con tutti i campi.

    Infine nel ciclo del reader per visualizzare ogni volta il record, non hai bisogno di assegnarlo all'array string[] row, perchè, se deve essere visualizzato il solo campo 0, ed è costituito da una sola stringa, basta:

    MessageBox.Show(reader.GetString(0));

    (Se invece volessi tutti i campi, anteponi le righe:

    int n = reader.FieldCount;
    object[] campo = new object[n]; //n è il numero dei campi del tuo record
    reader.GetValues(campo); // legge tutti i campi del record e li mette nella matrice campo

    e negli elementi (di tipo object) campo[0], campo[1], ..., campo[n-1], avrai tutti gli n campi di cui è composto il record corrente).

    Il programma potrebbe essere:
    
    MySqlConnection databaseConnection = new MySqlConnection(stringa di connessione);
    databaseConnection.Open();
    
    String query3 = "SELECT * FROM Dipendenti WHERE IdDipendente = '18'";
    MySqlCommand commandDatabase = new MySqlCommand(query3, databaseConnection);
    MySqlDataReader reader = commandDatabase.ExecuteReader();
    
    while (reader.Read())
    {
        MessageBox.Show(reader.GetString(0));   //visualizza il campo 0, di un record per volta (ma credo che sia uno solo)
    }
    databaseConnection.Close();
    
    
Devi accedere o registrarti per scrivere nel forum
3 risposte