Στο ADO.NET 2.0 ο προτεινόμενος τρόπος είναι να χρησιμοποιείς κλάσεις όπως η DbCommand, DbDataAdapter αντί για τις αντίστοιχες κλάσεις της κάθε βάσης. Τις κλάσεις αυτές τις δημιουργείς μέσω μίας κλάσης DbProviderFactory. Τέλος, ορίζεις την βάση που θα χρησιμοποιήσεις στο app.config. Έτσι μπορείς να γράψεις κώδικα ο οποίος δεν εξαρτάται από κάποια βάση. Για παράδειγμα, για να δημιουργήσεις ένα DbConnection γραφεις:
DbProviderFactory factory =
DbProviderFactories.GetFactory(providerName);
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
Δες το MSDN και συγκεκριμένα το Working with a DbAdapter. Ένας λόγος πάντως που οι εφαρμογές για MySQL δεν χρησιμοποιούσαν παλιότερα αυτό το μοντέλο ήταν και ότι ο MySql Connector/NET 1.0 δεν υποστήριζε ADO.NET 2.0, αν και αυτό δεν το πολυαναφέρανε στο site. Ο 5.0 το υποστηρίζει, οπότε δεν θα πρέπει να έχεις πρόβλημα.
Αν πάντως η εφαρμογή σου είναι γραμμένη να χρησιμοποιεί παντού MySqlDataAdapter, θα πρέπει να αλλάξεις τα referenes με τα αντίστοιχα DbDataAdapter. Αν ο κώδικας είναι αλλουνού, μπορείς να του πεις μερικά λόγια. Αν είναι δικός σου .. εεεε ... το ματς το είδες χθες?
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos