OleDbParameter Klasse

Definition

Stellt einen Parameter für einen OleDbCommand und optional für seine Zuordnung zu einer DataSet-Spalte dar. Diese Klasse kann nicht vererbt werden.

public ref class OleDbParameter sealed : System::Data::Common::DbParameter, ICloneable
public ref class OleDbParameter sealed : MarshalByRefObject, ICloneable, System::Data::IDbDataParameter
[System.ComponentModel.TypeConverter(typeof(System.Data.OleDb.OleDbParameter+OleDbParameterConverter))]
public sealed class OleDbParameter : System.Data.Common.DbParameter, ICloneable
[System.ComponentModel.TypeConverter(typeof(System.Data.OleDb.OleDbParameterConverter))]
public sealed class OleDbParameter : MarshalByRefObject, ICloneable, System.Data.IDbDataParameter
[<System.ComponentModel.TypeConverter(typeof(System.Data.OleDb.OleDbParameter+OleDbParameterConverter))>]
type OleDbParameter = class
    inherit DbParameter
    interface IDataParameter
    interface IDbDataParameter
    interface ICloneable
[<System.ComponentModel.TypeConverter(typeof(System.Data.OleDb.OleDbParameterConverter))>]
type OleDbParameter = class
    inherit MarshalByRefObject
    interface IDbDataParameter
    interface IDataParameter
    interface ICloneable
[<System.ComponentModel.TypeConverter(typeof(System.Data.OleDb.OleDbParameter+OleDbParameterConverter))>]
type OleDbParameter = class
    inherit DbParameter
    interface ICloneable
    interface IDbDataParameter
    interface IDataParameter
Public NotInheritable Class OleDbParameter
Inherits DbParameter
Implements ICloneable
Public NotInheritable Class OleDbParameter
Inherits MarshalByRefObject
Implements ICloneable, IDbDataParameter
Vererbung
OleDbParameter
Vererbung
Vererbung
OleDbParameter
Attribute
Implementiert

Beispiele

Im folgenden Beispiel werden mehrere Instanzen von OleDbParameter über die OleDbParameterCollection -Auflistung innerhalb des OleDbDataAdaptererstellt. Diese Parameter werden verwendet, um Daten aus der Datenquelle auszuwählen und die Daten im zu DataSetplatzieren. In diesem Beispiel wird davon ausgegangen, dass bereits ein DataSet und mithilfe OleDbDataAdapter des entsprechenden Schemas, der entsprechenden Befehle und der entsprechenden Verbindung erstellt wurden.

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;
}
Public Function GetDataSetFromAdapter( _
    ByVal dataSet As DataSet, ByVal connectionString As String, _
    ByVal queryString As String) As DataSet

    Using connection As New OleDbConnection(connectionString)
        Dim adapter As 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 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

Hinweise

Der OLE DB.NET Framework-Datenanbieter verwendet Positionsparameter, die mit einem Fragezeichen (?) gekennzeichnet sind, anstelle von benannten Parametern.

Beim Abfragen einer Oracle-Datenbank mit dem Microsoft OLE DB-Anbieter für Oracle (MSDAORA) und dem OLE DB.NET Framework-Datenanbieter gibt die Verwendung der LIKE -Klausel zum Abfragen von Werten in Feldern mit fester Länge möglicherweise nicht alle erwarteten Übereinstimmungen zurück. Der Grund ist, dass Oracle, wenn Werte für Felder mit fester Länge in einer LIKE -Klausel abgleicht, die gesamte Länge der Zeichenfolge einschließlich aller nachgestellten Leerzeichen übereinstimmt. Wenn beispielsweise eine Tabelle in einer Oracle-Datenbank ein Feld mit dem Namen "Field1" enthält, das als char(3)definiert ist, und Sie den Wert "a" in eine Zeile dieser Tabelle eingeben, gibt der folgende Code die Zeile nicht zurück.

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();  

Dies liegt daran, dass Oracle den Spaltenwert als "a" (Abstand von "a" mit nachgestellten Leerzeichen bis zur festen Feldlänge von 3) speichert, was Oracle bei einem LIKE Vergleich von Feldern mit fester Länge nicht als Übereinstimmung für den Parameterwert "a" behandelt.

Um dieses Problem zu beheben, fügen Sie ein Prozentzeichen ("%") an den Parameterwert ("a%") an, oder verwenden Sie stattdessen einen SQL-Vergleich = .

Konstruktoren

OleDbParameter()

Initialisiert eine neue Instanz der OleDbParameter-Klasse.

OleDbParameter(String, Object)

Initialisiert eine neue Instanz der OleDbParameter-Klasse, die den Parameternamen und den Wert des neuen OleDbParameter verwendet.

OleDbParameter(String, OleDbType)

Initialisiert eine neue Instanz der OleDbParameter-Klasse, die den Parameternamen und den Datentyp verwendet.

OleDbParameter(String, OleDbType, Int32)

Initialisiert eine neue Instanz der OleDbParameter-Klasse, die den Parameternamen, den Datentyp und die Länge verwendet.

OleDbParameter(String, OleDbType, Int32, ParameterDirection, Boolean, Byte, Byte, String, DataRowVersion, Object)

Initialisiert eine neue Instanz der OleDbParameter-Klasse, die Parametername, Datentyp, Länge, Quellspaltenname, Richtung des Parameters, numerische Genauigkeit und andere Eigenschaften verwendet.

OleDbParameter(String, OleDbType, Int32, ParameterDirection, Byte, Byte, String, DataRowVersion, Boolean, Object)

Initialisiert eine neue Instanz der OleDbParameter-Klasse, die Parametername, Datentyp, Länge, Quellspaltenname, Richtung des Parameters, numerische Genauigkeit und andere Eigenschaften verwendet.

OleDbParameter(String, OleDbType, Int32, String)

Initialisiert eine neue Instanz der OleDbParameter-Klasse, die den Parameternamen, den Datentyp, die Länge und den Quellspaltennamen verwendet.

Eigenschaften

DbType

Ruft den DbType des Parameters ab oder legt ihn fest.

Direction

Ruft einen Wert ab, der angibt, ob der Parameter nur zur Eingabe, nur zur Ausgabe oder zu beidem verwendet wird oder ob es sich um einen Parameter für den Rückgabewert einer gespeicherten Prozedur handelt, oder legt diesen Wert fest.

IsNullable

Ruft einen Wert ab, der angibt, ob der Parameter NULL-Werte akzeptiert, oder legt diesen fest.

Offset

Stellt einen Parameter für einen OleDbCommand und optional für seine Zuordnung zu einer DataSet-Spalte dar. Diese Klasse kann nicht vererbt werden.

OleDbType

Ruft den OleDbType des Parameters ab oder legt ihn fest.

ParameterName

Ruft den Namen der OleDbParameter ab oder legt diesen fest.

Precision

Ruft die maximale Anzahl von Stellen ab, die verwendet werden, um die Value-Eigenschaft darzustellen, oder legt diese fest.

Scale

Ruft die Anzahl der Dezimalstellen ab, in die Value aufgelöst wird, oder legt diese fest.

Size

Ruft die maximale Größe der Daten in der Spalte in Byte ab oder legt diese fest.

SourceColumn

Ruft den Namen der Quellspalte ab, die dem DataSet zugeordnet ist und zum Laden oder Zurückgeben des Value verwendet wird, oder legt diesen fest.

SourceColumnNullMapping

Ruft einen Wert ab, der angibt, ob die Quellspalte NULL-Werte zulässt, oder legt diesen fest. Dadurch kann DbCommandBuilder ordnungsgemäß Update-Anweisungen für Spalten generieren, die NULL-Werte zulassen.

SourceVersion

Ruft die DataRowVersion ab, die beim Laden von Value verwendet werden soll, oder legt diese fest.

Value

Ruft den Wert des Parameters ab oder legt diesen fest.

Methoden

CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.

(Geerbt von MarshalByRefObject)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
ResetDbType()

Setzt den diesem OleDbParameter zugeordneten Typ zurück.

ResetOleDbType()

Setzt den diesem OleDbParameter zugeordneten Typ zurück.

ToString()

Ruft eine Zeichenfolge ab, die den ParameterName enthält.

Explizite Schnittstellenimplementierungen

ICloneable.Clone()

Eine Beschreibung dieses Elements finden Sie unter Clone().

IDbDataParameter.Precision

Gibt die Genauigkeit numerischer Parameter an.

(Geerbt von DbParameter)
IDbDataParameter.Scale

Eine Beschreibung dieses Elements finden Sie unter Scale.

(Geerbt von DbParameter)

Gilt für

Siehe auch