朧の.Netの足跡
問合せ先:support@oborodukiyo.info サイト内検索はこちら
ADO.NET ORACLEでのSQL文内のパラメータの使い方





ORACLEでは、SQL文内でパラメータの所にはコロン+パラメータ名で、:nameという感じで指定します。
.Netでは、オラクル用のパラメータ変数の型は、OracleParameter型です。
基本はその型の変数に、ParameterNameプロパティとValueプロパティを指定して、SQLコマンドに登録することで利用可能です。

C#

//Oracleなのでこれを設定します。
using Oracle.DataAccess.Client;

namespace ADONET_ORACLEWithParameters
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            //Oracleへの接続情報の設定をします。
            OracleConnectionStringBuilder builder = new OracleConnectionStringBuilder();
            builder.UserID = "system";
            builder.Password = "password";
            builder.DataSource = "pdborcl";
            //接続情報を使ってコネクションを生成します。
            using (OracleConnection conn = new OracleConnection(builder.ConnectionString))
            {
                //SQL文とコネクションを設定します。
                //パラメータの入る場所には、:(パラメータ名)と先頭にコロンが付きます。
                using (OracleCommand cmd = new OracleCommand("SELECT * FROM dba_users WHERE username LIKE :username", conn))
                {
                    //パラメータの作成
                    OracleParameter prmtr = new OracleParameter();
                    //パラメータ名はコロンを除いた名前を指定します。
                    prmtr.ParameterName = "username";
                    //パラメータの値を設定します。
                    prmtr.Value = "%SYS%";
                    //パラメータをコマンドに追加します。
                    cmd.Parameters.Add(prmtr);
                    //Oracleへの橋渡しのアダプターを設定します。
                    OracleDataAdapter oda = new OracleDataAdapter();
                    //SELECTコマンドを設定します。
                    oda.SelectCommand = cmd;
                    //SELECTの実行及びフェッチ
                    oda.Fill(dt);
                    //グリッドに表示します。
                    this.dataGridView1.DataSource = dt;
                }
            }
        }
    }
}

        

VB.NET

'Oracleなのでこれを設定します。
Imports Oracle.DataAccess.Client

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim dt As DataTable = New DataTable()
        'Oracleへの接続情報の設定をします。
        Dim builder As OracleConnectionStringBuilder = New OracleConnectionStringBuilder()
        builder.UserID = "system"
        builder.Password = "password"
        builder.DataSource = "pdborcl"
        '接続情報を使ってコネクションを生成します。
        Using conn As New OracleConnection(builder.ConnectionString)
            'SELECTコマンドを設定します。
            Using cmd As New OracleCommand("SELECT * FROM dba_users WHERE username LIKE :username", conn)
                'パラメータの作成
                Dim prmtr As OracleParameter = New OracleParameter()
                'パラメータ名はコロンを除いた名前を指定します。
                prmtr.ParameterName = "username"
                'パラメータの値を設定します。
                prmtr.Value = "%SYS%"
                'パラメータをコマンドに追加します。
                cmd.Parameters.Add(prmtr)
                'Oracleへの橋渡しのアダプターを設定します。
                Dim oda As OracleDataAdapter = New OracleDataAdapter()
                oda.SelectCommand = cmd
                'SELECTの実行及び保存
                oda.Fill(dt)
                'グリッドに表示します。
                Me.DataGridView1.DataSource = dt
            End Using
        End Using
    End Sub
End Class
        








良いやや良い普通やや悪い悪い

投稿日時評価コメント