Share via


OdbcParameter 类

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

**命名空间:**System.Data.Odbc
**程序集:**System.Data(在 system.data.dll 中)

语法

声明
Public NotInheritable Class OdbcParameter
    Inherits DbParameter
    Implements ICloneable, IDbDataParameter, IDataParameter
用法
Dim instance As OdbcParameter
public sealed class OdbcParameter : DbParameter, ICloneable, IDbDataParameter, IDataParameter
public ref class OdbcParameter sealed : public DbParameter, ICloneable, IDbDataParameter, IDataParameter
public final class OdbcParameter extends DbParameter implements ICloneable, IDbDataParameter, 
    IDataParameter
public final class OdbcParameter extends DbParameter implements ICloneable, IDbDataParameter, 
    IDataParameter

备注

参数名称不区分大小写。

使用用于 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),这样,当 Oracle 进行固定长度的字段的 LIKE 比较时,就不会将其看作参数值“a”的匹配项。

若要解决此问题,请在参数值 ("a%") 后面追加一个百分号(“%”)通配符,或改为使用 SQL = 比较。

示例

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

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

继承层次结构

System.Object
   System.MarshalByRefObject
     System.Data.Common.DbParameter
      System.Data.Odbc.OdbcParameter

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1

请参见

参考

OdbcParameter 成员
System.Data.Odbc 命名空间

其他资源

使用命令