Exporter (0) Imprimer
Développer tout

OleDbParameter, classe

Mise à jour : novembre 2007

Représente un paramètre pour un OleDbCommand et éventuellement son mappage à une colonne DataSet. Cette classe ne peut pas être héritée.

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

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

Le fournisseur de données .NET Framework pour OLE DB utilise les paramètres positionnels qui sont signalés par un point d'interrogation (?) plutôt que des paramètres nommés.

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 OLE DB, 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 retourne 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 OleDbParameter par le biais de la collection OleDbParameterCollection dans OleDbDataAdapter. Ces paramètres sont utilisés pour sélectionner des données dans la source de données et les placer dans le DataSet. Cet exemple suppose que vous avez déjà créé DataSet et OleDbDataAdapter à l'aide du schéma, des commandes et de la connexion appropriés.

public DataSet GetDataSetFromAdapter(
    DataSet dataSet, string connectionString, string queryString)
{
    using (OleDbConnection connection =
               new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter =
            new OleDbDataAdapter(queryString, connection);

        // Set the parameters.
        adapter.SelectCommand.Parameters.Add(
            "@CategoryName", OleDbType.VarChar, 80).Value = "toasters";
        adapter.SelectCommand.Parameters.Add(
            "@SerialNum", OleDbType.Integer).Value = 239;

        // Open the connection and fill the DataSet.
        try
        {
            connection.Open();
            adapter.Fill(dataSet);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        // The connection is automatically closed when the
        // code exits the using block.
    }
    return dataSet;
}


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, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft