Ce sujet n'a pas encore été évalué - Évaluez ce sujet

OracleParameter, classe

Mise à jour : novembre 2007

Représente un paramètre pour OracleCommand et éventuellement son mappage à DataColumn. Cette classe ne peut pas être héritée.

Espace de noms :  System.Data.OracleClient
Assembly :  System.Data.OracleClient (dans System.Data.OracleClient.dll)

public sealed class OracleParameter : DbParameter, 
	ICloneable, IDbDataParameter, IDataParameter
public final class OracleParameter extends DbParameter implements ICloneable, 
	IDbDataParameter, IDataParameter
public final class OracleParameter extends DbParameter implements ICloneable, IDbDataParameter, IDataParameter

Les noms de paramètres ne respectent pas la casse.

Lorsque vous interrogez une base de données Oracle à l'aide du fournisseur Microsoft OLE DB pour Oracle (MSDAORA) et du fournisseur de données .NET Framework pour ODBC, l'utilisation de la clause LIKE pour interroger les valeurs des champs de longueur fixe peut ne pas retourner toutes les correspondances attendues. Cela s'explique par le fait que, lorsque Oracle recherche des valeurs correspondantes pour les champs de longueur fixe dans une clause LIKE, il fait correspondre la longueur totale de la chaîne, y compris tous les espaces de remplissage à droite. Par exemple, si une table de base de données Oracle contient un champ appelé "Champ1" défini en tant que char(3) et que vous entrez "a" dans une ligne de cette table, le code suivant ne retournera pas la ligne.

string queryString = "SELECT * FROM Table1 WHERE Field1 LIKE ?";
OleDbCommand command = new OleDbCommand(queryString, connection);
command.Parameters.Add("@p1", OleDbType.Char, 3).Value = "a";
OleDbDataReader reader = command.ExecuteReader();

En effet, Oracle stocke la valeur de colonne sous la forme "a " (en remplissant "a" avec les espaces à gauche, jusqu'à obtention de la longueur de champ fixe qui est 3), ce qu'Oracle ne traite pas comme une correspondance pour la valeur de paramètre de "a" dans le cas d'une comparaison LIKE de champs de longueur fixe.

Pour résoudre ce problème, ajoutez un caractère générique "%" (pourcentage) à la valeur de paramètre ("a%"), ou utilisez une comparaison SQL = à la place.

L'exemple suivant crée plusieurs instances de OracleParameter par l'intermédiaire de OracleParameterCollection figurant dans OracleDataAdapter. Ces paramètres sont utilisés pour sélectionner des données dans la base de données et les placer dans le DataSet. Cet exemple suppose que vous avez déjà créé DataSet et OracleDataAdapter à l'aide du schéma, des commandes et de la connexion appropriés.

public void AddOracleParameters() 
 {
 // ...
 // create dataSet and adapter
 // ...
   adapter.SelectCommand.Parameters.Add("pEName", OracleType.VarChar, 80).Value = "Smith";
   adapter.SelectCommand.Parameters.Add("pEmpNo", OracleType.Int32).Value = 7369;
   adapter.Fill(dataSet);
 }



System.Object
  System.MarshalByRefObject
    System.Data.Common.DbParameter
      System.Data.OracleClient.OracleParameter
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ