注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

K8拉登哥哥's Blog

K8搞基大队[K8team] 信息安全 网络安全 0day漏洞 渗透测试 黑客

 
 
 

日志

 
 

MSDN OleDbParameter 类 C#.NET VB.NET C++.NET 存储过程例子源码  

2012-03-02 16:16:25|  分类: C#.NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
OleDbParameter 类

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

命名空间:System.Data.OleDb
程序集:System.Data(在 system.data.dll 中)
 语法
Visual Basic(声明)

Public NotInheritable Class OleDbParameter
    Inherits DbParameter
    Implements ICloneable, IDbDataParameter, IDataParameter

Visual Basic(用法)

Dim instance As OleDbParameter

C#

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

C++

public ref class OleDbParameter sealed : public DbParameter, ICloneable, IDbDataParameter, IDataParameter

J#

public final class OleDbParameter extends DbParameter implements ICloneable, IDbDataParameter,
    IDataParameter

JScript

public final class OleDbParameter extends DbParameter implements ICloneable, IDbDataParameter,
    IDataParameter

 备注

OLE DB.NET Framework 数据提供程序使用标有问号 (?) 的定位参数,而不使用命名参数。

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

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

C#

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 = 比较等式。
 示例

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

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

C#

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

C#

using System;
using System.Data;
using System.Data.OleDb;

class Class1
{
    static void Main()
    {
        //        string x = "Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI;Initial Catalog=Northwind";
    }

    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;
    }
  评论这张
 
阅读(1130)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016