8
votes

Comment exécuter une instruction de mise à jour à l'aide d'Oracle ODP.NET en C #

J'utilise oracle.dataaccess.Client pour fonctionner avec oracle dans mon ASP.NET Application. Il n'y a pas de documentation d'aide dans msdn pour odp.net et la documentation Oracle est vraiment vraiment mauvaise. Je ne peux pas trouver la réponse à cette question simple.

N'est-il pas possible d'exécuter une instruction de mise à jour simple sans avoir à créer un objet objet et à mettre à jour le jeu de données ?

Comment exécuter une instruction de mise à jour en utilisant oracle odp.net dans c # ?


1 commentaires

ODP.NET implémente IDBCOMMAND, IDBConnection et IDBDataDapter pourquoi vous ne pouvez pas les utiliser pour préparer et exécuter votre relevé de mise à jour.


3 Réponses :


17
votes

Je devrai vérifier la syntaxe exacte, mais voici un code rapide du haut de ma tête xxx

ce qui précède crée un objet de commande définit la commande jusqu'à exécuter une mise à jour SQL Déclaration, dans cet exemple, je montre un moyen de configurer une requête paramétrée, vous devez toujours accéder à une requête paramétrée. Une fois la commande configurée, vous venez d'appeler exécutenonquery pour exécuter la commande.


3 commentaires

Doux! Merci! Bien que je ne puisse pas trouver "addwithvalue". Exécutenonquery était la clé, je l'ai essayé avec une requête paramétrée et cela a fonctionné. Je pense que je peux l'improviser d'ici. Vraiment apprécier votre temps !!


Karthik, l'avantage d'utiliser une requête paramétrée est qu'il fait toute la protection contre l'injection SQL pour vous.


Heya! Je ne changerais que quelques éléments pour ajouter la commande de transaction qui permet à Oracle d'exécuter des commandes de mise à jour: code oraclecommand cmd = con.Createcommand (); Oracletransaction ORATRANS = CON.BEGINTRANSACTION (ISAMENTLEVEL.PRANDCOMMAGED); cmd.Transaction = oratrans; . . . cmd.executenonquery (); ORATRANS.COMMIT (); Le tiens,



0
votes

Suite à la réponse de @ Chris, voici la page de documentation de oracleparamètre < / a> classe qui a un code d'exemple sur l'utilisation de oraclecommand à exécuter mise à jour s.

Edit: Voici le point d'entrée de Documentation ODP.NET .


1 commentaires

Le lien vers le code d'échantillon que vous avez fourni est de savoir comment récupérer les données à l'aide d'oracledatreader et non sur la manière de mettre à jour les données (conformément à ma question initiale). J'ai déjà suivi la documentation ODP.NET et je n'ai pas pu trouver un échantillon de code similaire pour la mise à jour. Je souhaite que MSDN ait documenté ceci :(.



4
votes

Ainsi, après un morceau de sommeil et de travailler cela pendant un moment, j'ai trouvé que la méthode que j'ai ajouté un nouveau paramètre à la commande de connexion est la suivante. Je n'ai pas trouvé la méthode comme indiqué dans le post précédent. Mind You vous utilisez un objet de requête que je passe les valeurs avec. XXX


1 commentaires

On dirait que vous insérez deux fois. Deux cmd.executenonquery ();