Domanda

Sto usando il blocco Applicazione dati per la maggior parte del mio accesso ai dati, in particolare usando la classe SqlHelper per chiamare i metodi ExecuteReader, ExecuteNonQuery e simili. Passando la stringa di connessione ad ogni chiamata del database.

Come posso modificarlo per abilitare anche la connessione a un database MySQL.

È stato utile?

Soluzione

Se hai installato Enterprise Library e sai già come connetterti ai database di SQL Server, collegarti ai database MySQL non è più difficile.

Un modo per farlo è usare ODBC. Questo è quello che ho fatto:

  1. Vai su MySQL.com e scarica il connettore ODBC MySQL più recente. Mentre scrivo questo è 5.1.5. Ho usato la versione a 64 bit, come ho Vista a 64 bit.
  2. Installa il connettore ODBC. Ho scelto di utilizzare la versione senza installazione. L'ho appena decompresso ed ho eseguito Install.bat al prompt dei comandi di un amministratore. La versione MSI probabilmente funziona bene, ma l'ho fatto in questo modo quando ho installato il connettore 3.51.
  3. Verifica l'installazione aprendo il pannello di controllo ODBC e selezionando la scheda Driver. Dovresti vedere il driver MySQL ODBC 5.1 elencato lì. Sembra persino coesistere pacificamente con la versione 3.51 precedente se ce l'hai già. Inoltre, coesiste pacificamente con il connettore .NET se anche quello è installato.
  4. A questo punto farai ciò che hai fatto per connetterti a un database di SQL Server. Tutto quello che devi sapere è cosa usare per una stringa di connessione.
  5. Ecco come appare il mio:
  6. Ovviamente puoi impostare " nome " a quello che vuoi.
  7. Se questo è il tuo unico database, puoi configurarlo come DefaultDatabase in questo modo:
  8. Accedi ai tuoi dati nel tuo codice come fai sempre! Ecco un esempio sql di testo semplice:
    public List<Contact> Contact_SelectAll()
    {
        List<Contact> contactList = new List<Contact>();
        Database db = DatabaseFactory.CreateDatabase("MySqlDatabaseTest");
        DbCommand dbCommand = db.GetSqlStringCommand("select * from Contact");
        using (IDataReader dataReader = db.ExecuteReader(dbCommand))
        {
            while (dataReader.Read())
            {
                Contact contact = new Contact();
                contact.ID = (int) dataReader["ContactID"];
                client.FirstName = dataReader["ContactFName"].ToString();
                client.LastName = dataReader["ContactLName"].ToString();
                clientList.Add(client);
            }
        }

        return clientList;
    }

Un altro modo per farlo è costruire e usare un provider MySql. Questo ragazzo l'ha fatto . Ho imparato a farlo adattando queste istruzioni per la connessione ad Access. Oh, e qui ci sono altri esempi di stringhe di connessione MySql .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top