OdbcParameter Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta un parametro di un oggetto OdbcCommand e, facoltativamente, il relativo mapping a un oggetto DataColumn. La classe non può essere ereditata.
public ref class OdbcParameter sealed : MarshalByRefObject, ICloneable, System::Data::IDbDataParameter
public ref class OdbcParameter sealed : System::Data::Common::DbParameter, ICloneable
[System.ComponentModel.TypeConverter(typeof(System.Data.Odbc.OdbcParameterConverter))]
public sealed class OdbcParameter : MarshalByRefObject, ICloneable, System.Data.IDbDataParameter
[System.ComponentModel.TypeConverter(typeof(System.Data.Odbc.OdbcParameter+OdbcParameterConverter))]
public sealed class OdbcParameter : System.Data.Common.DbParameter, ICloneable
[<System.ComponentModel.TypeConverter(typeof(System.Data.Odbc.OdbcParameterConverter))>]
type OdbcParameter = class
inherit MarshalByRefObject
interface IDbDataParameter
interface IDataParameter
interface ICloneable
[<System.ComponentModel.TypeConverter(typeof(System.Data.Odbc.OdbcParameter+OdbcParameterConverter))>]
type OdbcParameter = class
inherit DbParameter
interface ICloneable
interface IDbDataParameter
interface IDataParameter
Public NotInheritable Class OdbcParameter
Inherits MarshalByRefObject
Implements ICloneable, IDbDataParameter
Public NotInheritable Class OdbcParameter
Inherits DbParameter
Implements ICloneable
- Ereditarietà
- Ereditarietà
- Attributi
- Implementazioni
Esempio
Nell'esempio seguente vengono create più istanze di tramite all'interno OdbcParameter di OdbcParameterCollectionOdbcDataAdapter. Questi parametri vengono usati per selezionare i dati dall'origine dati e inserire i dati in DataSet. In questo esempio si presuppone che un oggetto DataSet e sia OdbcDataAdapter già stato creato usando lo schema, i comandi e la connessione appropriati.
public DataSet GetDataSetFromAdapter(
DataSet dataSet, string connectionString, string queryString)
{
using (OdbcConnection connection =
new OdbcConnection(connectionString))
{
OdbcDataAdapter adapter =
new OdbcDataAdapter(queryString, connection);
// Set the parameters.
adapter.SelectCommand.Parameters.Add(
"@CategoryName", OdbcType.VarChar, 80).Value = "toasters";
adapter.SelectCommand.Parameters.Add(
"@SerialNum", OdbcType.Int).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;
}
Public Function GetDataSetFromAdapter( _
ByVal dataSet As DataSet, ByVal connectionString As String, _
ByVal queryString As String) As DataSet
Using connection As New OdbcConnection(connectionString)
Dim adapter As New OdbcDataAdapter(queryString, connection)
' Set the parameters.
adapter.SelectCommand.Parameters.Add( _
"@CategoryName", OdbcType.VarChar, 80).Value = "toasters"
adapter.SelectCommand.Parameters.Add( _
"@SerialNum", OdbcType.Int).Value = 239
' Open the connection and fill the DataSet.
Try
connection.Open()
adapter.Fill(dataSet)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
' The connection is automatically closed when the
' code exits the Using block.
End Using
Return dataSet
End Function
Commenti
I nomi dei parametri non fanno distinzione tra maiuscole e minuscole.
Quando si esegue una query su un database Oracle usando il provider OLE DB Microsoft per Oracle (MSDAORA) e ODBC .NET Framework provider di dati, l'utilizzo della clausola LIKE per eseguire query sui valori nei campi a lunghezza fissa potrebbe non restituire tutte le corrispondenze previste. Il motivo è che quando Oracle corrisponde ai valori per i campi a lunghezza fissa in una LIKE clausola , corrisponde all'intera lunghezza della stringa, inclusi gli spazi finali di riempimento. Ad esempio, se una tabella in un database Oracle contiene un campo denominato "Field1" definito come char(3)e si immette il valore "a" in una riga di tale tabella, il codice seguente non restituirà la riga.
Dim queryString As String = "SELECT * FROM Table1 WHERE Field1 LIKE ?"
Dim command As OleDbCommand = New OleDbCommand(queryString, connection)
command.Parameters.Add("@p1", OleDbType.Char, 3).Value = "a"
Dim reader As OleDbDataReader = command.ExecuteReader()
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();
Questo avviene perché Oracle archivia il valore della colonna come "a" (riempimento "a", con spazi finali, alla lunghezza fissa del campo pari a 3), che Oracle non considera come corrispondenza per il valore del parametro "a" nel caso di un LIKE confronto di campi a lunghezza fissa.
Per risolvere questo problema, aggiungere un carattere jolly percentuale ("%") al valore del parametro ("a%") oppure usare un confronto SQL = .
Costruttori
| Nome | Descrizione |
|---|---|
| OdbcParameter() |
Inizializza una nuova istanza della classe OdbcParameter. |
| OdbcParameter(String, Object) |
Inizializza una nuova istanza della OdbcParameter classe che utilizza il nome del parametro e un OdbcParameter oggetto . |
| OdbcParameter(String, OdbcType, Int32, ParameterDirection, Boolean, Byte, Byte, String, DataRowVersion, Object) |
Inizializza una nuova istanza della classe che usa il nome del parametro, il tipo di dati, la lunghezza, il nome della colonna di origine, la direzione del parametro, la OdbcParameter precisione numerica e altre proprietà. |
| OdbcParameter(String, OdbcType, Int32, ParameterDirection, Byte, Byte, String, DataRowVersion, Boolean, Object) |
Inizializza una nuova istanza della classe che usa il nome del parametro, il tipo di dati, la lunghezza, il nome della colonna di origine, la direzione del parametro, la OdbcParameter precisione numerica e altre proprietà. |
| OdbcParameter(String, OdbcType, Int32, String) |
Inizializza una nuova istanza della OdbcParameter classe che utilizza il nome del parametro, il tipo di dati, la lunghezza e il nome della colonna di origine. |
| OdbcParameter(String, OdbcType, Int32) |
Inizializza una nuova istanza della OdbcParameter classe che utilizza il nome del parametro, il tipo di dati e la lunghezza. |
| OdbcParameter(String, OdbcType) |
Inizializza una nuova istanza della OdbcParameter classe che utilizza il nome del parametro e il tipo di dati. |
Proprietà
| Nome | Descrizione |
|---|---|
| DbType |
Ottiene o imposta l'oggetto DbType del parametro . |
| Direction |
Ottiene o imposta un valore che indica se il parametro è di sola input, solo output, bidirezionale o un parametro del valore restituito della stored procedure. |
| IsNullable |
Ottiene o imposta un valore che indica se il parametro accetta valori Null. |
| OdbcType |
Ottiene o imposta l'oggetto OdbcType del parametro . |
| ParameterName |
Ottiene o imposta il nome dell'oggetto OdbcParameter. |
| Precision |
Ottiene o imposta il numero di cifre utilizzate per rappresentare la Value proprietà . |
| Scale |
Ottiene o imposta il numero di posizioni decimali in cui Value viene risolto. |
| Size |
Ottiene o imposta la dimensione massima dei dati all'interno della colonna. |
| SourceColumn |
Ottiene o imposta il nome della colonna di origine mappata a DataSet e utilizzata per il caricamento o la restituzione di Value. |
| SourceColumnNullMapping |
Ottiene o imposta un valore che indica se la colonna di origine è nullable. In questo modo è possibile DbCommandBuilder generare correttamente istruzioni Update per le colonne nullable. |
| SourceVersion |
Ottiene o imposta l'oggetto DataRowVersion da utilizzare quando si carica Value. |
| Value |
Ottiene o imposta il valore del parametro. |
Metodi
| Nome | Descrizione |
|---|---|
| CreateObjRef(Type) |
Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto. (Ereditato da MarshalByRefObject) |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetLifetimeService() |
Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| InitializeLifetimeService() |
Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| MemberwiseClone(Boolean) |
Crea una copia superficiale dell'oggetto corrente MarshalByRefObject . (Ereditato da MarshalByRefObject) |
| ResetDbType() |
Reimposta il tipo associato all'oggetto OdbcParameter. |
| ResetOdbcType() |
Reimposta il tipo associato all'oggetto OdbcParameter. |
| ToString() |
Ottiene una stringa contenente l'oggetto ParameterName. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| ICloneable.Clone() |
Per una descrizione di questo membro, vedere Clone(). |
| IDbDataParameter.Precision |
Indica la precisione dei parametri numerici. (Ereditato da DbParameter) |
| IDbDataParameter.Scale |
Per una descrizione di questo membro, vedere Scale. (Ereditato da DbParameter) |