Bonjour,
je suis entrain de développer une classe générique pour l'accès aux données. Cette classe doit rendre mon programme capable de tourner soit sur Oracle soit sur Sql Server.
J'ai ecris les méthodes qui permettent d'établir la connexion, d'exécuter une commande...Là je travaille sur une fonction qui doit me retourner un dataset.
Lorsque j'ai voulu créer l'objet IDAdapter, j'ai mis la ligne suivante :
IDataAdapter adapter = this.GetDataAdapter(command);
Or, j'ai problème au niveau de la fonction GetDataAdapter. Voici son code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| private IDataAdapter GetDataAdapter(IDbCommand command)
{
IDataAdapter adapter = null;
Assembly objAssembly=Assembly.LoadWithPartialName(ConfigurationSettings.AppSettings["DBAssembly"]);
string databaseType = ConfigurationSettings.AppSettings["DataBase"];
switch( databaseType )
{
case "SQLSEREVR":
adapter = new SqlDataAdapter((SqlCommand) command);
break;
case "ORACLE":
adapter = new OracleDataAdapter((OracleCommand) command);
break;
default:
adapter = new SqlDataAdapter((SqlCommand) command);
break;
}
return adapter;
} |
et mon ficchier web.config, contient les lignes suivantes qui permettennt définisse la base qui est utilisée.
1 2 3 4 5 6 7 8 9 10 11 12 13
| <!-- SQL SERVER -->
<add key="DataBase" value="SQLSERVER" />
<add key="DBAssembly" value="System.Data" />
<add key="DBConnectionClass" value="System.Data.SqlClient.SqlConnection" />
<add key="DBConnectionString" value=";uid=******;pwd=chris;Initial Catalog=******;Data Source=.;" />
<!-- ORACLE -->
<!--
<add key="DataBase" value="ORACLE" />
<add key="DBAssembly" value="System.Data" />
<add key="DBConnectionClass" value="System.Data.OracleClient.OracleConnection" />
<add key="DBConnectionString" value="Data Source=XE;User Id=******;Password=*****" />
--> |
Lorsque je compile le projet, j'ai les messages d'erreur suivants :
c:\inetpub\wwwroot\WebApplication2\IDataProvider.cs(136): Le type ou le nom d'espace de noms 'SqlDataAdapter' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
et
c:\inetpub\wwwroot\WebApplication2\IDataProvider.cs(140): Le type ou le nom d'espace de noms 'OracleDataAdapter' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
je ne sais pas comment m'en sortir. avez vous une idée ou une autre solution pour récuperer l'adapter ?? Merci
Partager