OdbcParameter 类

定义

表示 OdbcCommand 的参数,还可以表示它到 DataColumn 的映射。 此类不能被继承。

public ref class OdbcParameter sealed : System::Data::Common::DbParameter, ICloneable
public ref class OdbcParameter sealed : MarshalByRefObject, ICloneable, System::Data::IDbDataParameter
public sealed class OdbcParameter : 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
type OdbcParameter = class
    inherit DbParameter
    interface IDataParameter
    interface IDbDataParameter
    interface ICloneable
type OdbcParameter = class
    inherit DbParameter
    interface ICloneable
    interface IDataParameter
    interface IDbDataParameter
[<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 DbParameter
Implements ICloneable
Public NotInheritable Class OdbcParameter
Inherits MarshalByRefObject
Implements ICloneable, IDbDataParameter
继承
OdbcParameter
继承
继承
OdbcParameter
属性
实现

示例

以下示例通过 OdbcParameterCollection 中的 OdbcDataAdapter创建的多个实例OdbcParameter。 这些参数用于从数据源中选择数据,并将数据置于 中 DataSet。 此示例假定 DataSet 已使用适当的架构、命令和连接创建了 和 OdbcDataAdapter

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

注解

参数名称不区分大小写。

使用 Oracle 的 Microsoft OLE DB 提供程序 (MSDAORA) 和 ODBC .NET Framework 数据提供程序查询 Oracle 数据库时,使用 LIKE 子句查询固定长度字段中的值可能不会返回所有预期的匹配项。 原因是,当 Oracle 匹配 子句中 LIKE 固定长度字段的值时,它将匹配字符串的整个长度,包括任何填充尾随空格。 例如,如果 Oracle 数据库中的表包含定义为 char(3)的名为“Field1”的字段,并且您在该表的一行中输入值“a”,则以下代码不会返回该行。

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

这是因为 Oracle 将列值存储为“a” (填充“a”(带有尾随空格)的固定字段长度为 3) ,在比较固定长度字段时 LIKE ,Oracle 不会将其视为“a”参数值的匹配项。

若要解决此问题,请将百分比 (“%”) 通配符追加到参数值 ("a%") ,或者改用 SQL = 比较。

构造函数

OdbcParameter()

初始化 OdbcParameter 类的新实例。

OdbcParameter(String, Object)

初始化使用参数名称和 OdbcParameter 对象的 OdbcParameter 类的新实例。

OdbcParameter(String, OdbcType)

初始化使用参数名称和数据类型的 OdbcParameter 类的新实例。

OdbcParameter(String, OdbcType, Int32)

初始化使用参数名称、数据类型和长度的 OdbcParameter 类的新实例。

OdbcParameter(String, OdbcType, Int32, ParameterDirection, Boolean, Byte, Byte, String, DataRowVersion, Object)

初始化 OdbcParameter 类的新实例,该类使用参数名称、数据类型、长度、源列名、参数方向、数值精度和其他属性。

OdbcParameter(String, OdbcType, Int32, ParameterDirection, Byte, Byte, String, DataRowVersion, Boolean, Object)

初始化 OdbcParameter 类的新实例,该类使用参数名称、数据类型、长度、源列名、参数方向、数值精度和其他属性。

OdbcParameter(String, OdbcType, Int32, String)

初始化使用参数名称、数据类型、长度和源列名称的 OdbcParameter 类的新实例。

属性

DbType

获取或设置参数的 DbType

Direction

获取或设置一个值,该值指示参数是只可输入的参数、只可输出的参数、双向参数还是存储过程返回值参数。

IsNullable

获取或设置一个值,该值指示参数是否接受 null 值。

OdbcType

获取或设置参数的 OdbcType

Offset

表示 OdbcCommand 的参数,还可以表示它到 DataColumn 的映射。 此类不能被继承。

ParameterName

获取或设置 OdbcParameter 的名称。

Precision

获取或设置用来表示 Value 属性的最大位数。

Scale

获取或设置所解析的 Value 的小数位数。

Size

获取或设置列内数据的最大大小。

SourceColumn

获取或设置源列的名称,该源列映射到 DataSet 并用于加载或返回 Value

SourceColumnNullMapping

获取或设置一个值,该值指示源列是否可以为 null。 这使 DbCommandBuilder 能够正确地为可为 null 的列生成 Update 语句。

SourceVersion

获取或设置在加载 DataRowVersion 时使用的 Value

Value

获取或设置参数的值。

方法

CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(继承自 MarshalByRefObject)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetLifetimeService()
已过时.

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetType()

获取当前实例的 Type

(继承自 Object)
InitializeLifetimeService()
已过时.

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
ResetDbType()

重置与此 OdbcParameter 关联的类型。

ResetOdbcType()

重置与此 OdbcParameter 关联的类型。

ToString()

获取一个包含 ParameterName 的字符串。

显式接口实现

ICloneable.Clone()

有关此成员的说明,请参见 Clone()

IDbDataParameter.Precision

指示数值参数的精度。

(继承自 DbParameter)
IDbDataParameter.Scale

有关此成员的说明,请参见 Scale

(继承自 DbParameter)

适用于

另请参阅