1

Environnement:comment définir OracleCommand.BindByName = true dans .net?

-Visual Studio 2010 (FrameWork .NET 4)

  • Application Web ASP.NET

  • Oracle Database

  • utilisant System.Data.OracleClient

J'ai un formulaire Web où un utilisateur peut entrer des données ou pas dans des zones de texte correspondant à chaque paramètre de mon query.if utilisateur entré aucune donnée la boîte de texte aura la valeur "0".

voici ma question:

SELECT "CARDNO", "Nom" DE CardList OU ("CARDNO" =: CARDNO ou: CARDNO = 0) et ("Nom" =: Nom ou: Nom = 0)

lorsque je clique avec le bouton droit sur la requête de l'adaptateur de table dans le panneau MYDATABASE.xsd, et sélectionne 'Preview Data' et remplit les valeurs de paramètre avec "0" j'obtiens l'erreur ("ORA-01008: Not toutes les variables liées "). Après beaucoup de recherche j'ai découvert que je devrais mettre OracleCommand.BindByName = true (apparemment ce n'est pas vrai par défaut)

quelqu'un peut-il m'aider à le faire?

+0

System.Data.OracleClient est * PAS * ODP.NET. System.Data.OracleClient lie déjà par nom. Quel fournisseur utilisez-vous vraiment? –

Répondre

0

Utiliser Oracle.ManagedDataAccess au lieu de System.Data.OracleClient qui est dépréciée

Créer une commande Objet:

using(Oracle.ManagedDataAccess.Client.OracleConnection connection = new Oracle.ManagedDataAccess.Client.OracleConnection(myConnectionString)) 
{ 
    connection.Open(); 
    Oracle.ManagedDataAccess.Client.OracleCommand command = new Oracle.ManagedDataAccess.Client.OracleCommand(); 
    command.CommandText = "SELECT ..." 
    command.BindByName = true; 
    // execute your command 
    ... 
}