Mise à jour d'un ancien logiciel, mais afin de maintenir la compatibilité ascendante, je dois me connecter à une database .mdb (access).
J'utilise la connection suivante mais continue d'get une exception, pourquoi?
J'ai validé le path, l'existence de la database etc. et tout est correct.
ssortingng Server = "localhost"; ssortingng Database = drive + "\\btc2\\state\\states.mdb"; ssortingng Username = ""; ssortingng Password = "Lhotse"; ssortingng ConnectionSsortingng = "Data Source = " + Server + ";" + "Initial Catalog = " + Database + ";" + "User Id = '';" + "Password = " + Password + ";"; SqlConnection SQLConnection = new SqlConnection(); try { SQLConnection.ConnectionSsortingng = ConnectionSsortingng; SQLConnection.Open(); } catch (Exception Ex) { // Try to close the connection if (SQLConnection != null) SQLConnection.Dispose(); // //can't connect // // Stop here return false; }
Le message d'exception est:
Une erreur liée au réseau ou à une instance s'est produite lors de l'établissement d'une connection à SQL Server. Le server est introuvable ou inaccessible. Vérifiez que le nom d'instance est correct et que SQL Server est configuré pour autoriser les connections distantes. (fournisseur: fournisseur de canaux nommés, erreur: 40 – Impossible d'ouvrir une connection à SQL Server)
Qu'est-ce qui vous fait penser qu'une connection SQL Server (SqlConnection) sera prête à se connecter à une database MDB Access ???
Si vous vous connectez à Access, utilisez OleDbConnection . Pour accéder aux strings de connection, voir http://www.connectionssortingngs.com/access
Vous devez append un fournisseur de données à votre string de connection:
Fournisseur = Microsoft.Jet.OLEDB.4.0; Source de données = C: \ mydatabase.mdb; ID user = admin; Mot de passe =;
essayez cette version plus sûre en utilisant la clause using
… comme pour la variable Database
, il serait préférable et plus sûr d'utiliser la méthode System.IO.Path.Combine
…:
string Server = "localhost"; ssortingng Base de données = System.IO.Path.Combine (@ "C: \", @ "\ btc2 \ state \ states.mdb"); ssortingng Username = ""; ssortingng Password = "Lhotse"; ssortingng ConnectionSsortingng = "Source de données =" + Serveur + ";" + "Initial Catalog =" + Base de données + ";" + "ID user = '';" + "Mot de passe =" + Mot de passe + ";"; bool bDatabaseOk = faux; using (SqlConnection SQLConnection = new SqlConnection ()) { essayer { SQLConnection.ConnectionSsortingng = Chaînelogin; SQLConnection.Open (); bDatabaseOk = true; } catch (SqlException Ex) { // Gère l'exception SqlException ici .... // // ne peut pas se connecter bDatabaseOk = false; } } returnne bDatabaseOk;