Export (0) Print
Expand All

OdbcParameter Class

Represents a parameter to an OdbcCommand and optionally, its mapping to a DataColumn. This class cannot be inherited.

Namespace:  System.Data.Odbc
Assembly:  System.Data (in System.Data.dll)

public sealed class OdbcParameter : DbParameter, 
	ICloneable, IDbDataParameter, IDataParameter

The OdbcParameter type exposes the following members.

  NameDescription
Public methodOdbcParameter()Initializes a new instance of the OdbcParameter class.
Public methodOdbcParameter(String, OdbcType)Initializes a new instance of the OdbcParameter class that uses the parameter name and data type.
Public methodOdbcParameter(String, Object)Initializes a new instance of the OdbcParameter class that uses the parameter name and an OdbcParameter object.
Public methodOdbcParameter(String, OdbcType, Int32)Initializes a new instance of the OdbcParameter class that uses the parameter name, data type, and length.
Public methodOdbcParameter(String, OdbcType, Int32, String)Initializes a new instance of the OdbcParameter class that uses the parameter name, data type, length, and source column name.
Public methodOdbcParameter(String, OdbcType, Int32, ParameterDirection, Boolean, Byte, Byte, String, DataRowVersion, Object)Initializes a new instance of the OdbcParameter class that uses the parameter name, data type, length, source column name, parameter direction, numeric precision, and other properties.
Public methodOdbcParameter(String, OdbcType, Int32, ParameterDirection, Byte, Byte, String, DataRowVersion, Boolean, Object)Initializes a new instance of the OdbcParameter class that uses the parameter name, data type, length, source column name, parameter direction, numeric precision, and other properties.
Top

  NameDescription
Public propertyDbTypeGets or sets the DbType of the parameter. (Overrides DbParameter.DbType.)
Public propertyDirectionGets or sets a value that indicates whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter. (Overrides DbParameter.Direction.)
Public propertyIsNullableGets or sets a value that indicates whether the parameter accepts null values. (Overrides DbParameter.IsNullable.)
Public propertyOdbcTypeGets or sets the OdbcType of the parameter.
Public propertyParameterNameGets or sets the name of the OdbcParameter. (Overrides DbParameter.ParameterName.)
Public propertyPrecisionGets or sets the number of digits used to represent the Value property.
Public propertyScaleGets or sets the number of decimal places to which Value is resolved.
Public propertySizeGets or sets the maximum size of the data within the column. (Overrides DbParameter.Size.)
Public propertySourceColumnGets or sets the name of the source column mapped to the DataSet and used for loading or returning the Value. (Overrides DbParameter.SourceColumn.)
Public propertySourceColumnNullMappingSets or gets a value which indicates whether the source column is nullable. This lets DbCommandBuilder correctly generate Update statements for nullable columns. (Overrides DbParameter.SourceColumnNullMapping.)
Public propertySourceVersionGets or sets the DataRowVersion to use when you load Value. (Overrides DbParameter.SourceVersion.)
Public propertyValueGets or sets the value of the parameter. (Overrides DbParameter.Value.)
Top

  NameDescription
Public methodCreateObjRefCreates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object. (Inherited from MarshalByRefObject.)
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetLifetimeServiceRetrieves the current lifetime service object that controls the lifetime policy for this instance. (Inherited from MarshalByRefObject.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodInitializeLifetimeServiceObtains a lifetime service object to control the lifetime policy for this instance. (Inherited from MarshalByRefObject.)
Public methodResetDbTypeResets the type associated with this OdbcParameter. (Overrides DbParameter.ResetDbType().)
Public methodResetOdbcTypeResets the type associated with this OdbcParameter.
Public methodToStringGets a string that contains the ParameterName. (Overrides Object.ToString().)
Top

  NameDescription
Explicit interface implemetationPrivate methodICloneable.CloneFor a description of this member, see ICloneable.Clone.
Explicit interface implemetationPrivate propertyIDbDataParameter.PrecisionIndicates the precision of numeric parameters. (Inherited from DbParameter.)
Explicit interface implemetationPrivate propertyIDbDataParameter.ScaleFor a description of this member, see IDbDataParameter.Scale. (Inherited from DbParameter.)
Top

Parameter names are not case sensitive.

When querying an Oracle database using the Microsoft OLE DB Provider for Oracle (MSDAORA) and the ODBC .NET Framework Data Provider, using the LIKE clause to query values in fixed-length fields might not return all expected matches. The reason is that when Oracle matches values for fixed-length fields in a LIKE clause, it matches the entire length of the string, including any padding trailing spaces. For example, if a table in an Oracle database contains a field named "Field1" that is defined as char(3), and you enter the value "a" into a row of that table, the following code will not return the row.

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

This is because Oracle stores the column value as "a " (padding "a", with trailing spaces, to the fixed field length of 3), which Oracle does not treat as a match for the parameter value of "a" in the case of a LIKE comparison of fixed-length fields.

To resolve this problem, append a percentage ("%") wildcard character to the parameter value ("a%"), or use an SQL = comparison instead.

The following example creates multiple instances of OdbcParameter through the OdbcParameterCollection within the OdbcDataAdapter. These parameters are used to select data from the data source and place the data in the DataSet. This example assumes that a DataSet and an OdbcDataAdapter have already been created by using the appropriate schema, commands, and connection.

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;
}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft