OleDbParameter クラスとは? わかりやすく解説

OleDbParameter クラス

OleDbCommand のパラメータと、オプションとして DataSet 列に対すマップ表します。このクラス継承できません。

名前空間: System.Data.OleDb
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public NotInheritable Class
 OleDbParameter
    Inherits DbParameter
    Implements ICloneable, IDbDataParameter, IDataParameter
Dim instance As OleDbParameter
public sealed class OleDbParameter : DbParameter,
 ICloneable, IDbDataParameter, IDataParameter
public ref class OleDbParameter sealed : public
 DbParameter, ICloneable, IDbDataParameter, IDataParameter
public final class OleDbParameter extends DbParameter
 implements ICloneable, IDbDataParameter, 
    IDataParameter
public final class OleDbParameter extends
 DbParameter implements ICloneable, IDbDataParameter, 
    IDataParameter
解説解説

OLE DB .NET Framework データ プロバイダでは、名前付パラメータではなく疑問符 (?) で示される位置指定パラメータ使用されます。

Microsoft OLE DB Provider for Oracle (MSDAORA) と OLE DB .NET Framework データ プロバイダ使用して Oracle データベース対すクエリ実行する場合LIKE 句を使用して固定長フィールドの値を問い合わせると、期待される一致したデータがすべて返されないことがあります。これは、Oracle によって LIKE 句の固定長フィールドの値との比較が行われるときに、末尾空白含めて文字列全長わたって比較が行われるからです。たとえば、Oracle データベーステーブルchar(3) として定義されている "Field1" という名前のフィールド存在し、そのテーブルの行の 1 つに "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 では、3 の固定長合わせるために "a" に続けて空白埋めて、列値を "a " として格納しているからです。Oracle は、固定長フィールドLIKE 比較において、これをパラメータ値 "a" と一致しているとは見なしません。

この問題解決するには、パーセント ("%") ワイルドカード文字パラメータ値 ("a%") に追加するか、または代わりに SQL = 比較使用します

使用例使用例

OleDbDataAdapter の OleDbParameterCollection コレクション使用してOleDbParameter複数インスタンス作成する例を次に示します。これらのパラメータは、データ ソースからのデータ選択と、DataSet でのデータ配置使用されます。この例は、DataSet および OleDbDataAdapter が、正しスキーマコマンド、および接続で既に作成されていることを前提にしています。

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
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;
}
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;
    }
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.Data.Common.DbParameter
      System.Data.OleDb.OleDbParameter
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からOleDbParameter クラスを検索した結果を表示しています。
Weblioに収録されているすべての辞書からOleDbParameter クラスを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からOleDbParameter クラス を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「OleDbParameter クラス」の関連用語

OleDbParameter クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



OleDbParameter クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS