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





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

C#

//SQL Serverなのでこれを設定します。
using System.Data.SqlClient;

namespace ADONET_SQLServerWithParameters
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            //SQL Serverへの接続情報の設定をします。
            SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
            //ここではWindows認証を使うに設定します。
            builder.IntegratedSecurity = true;
            builder.InitialCatalog = "AdventureWorks2008";
            //インスタンス名を設定します。
            builder.DataSource = ".\\SQLExpress";
            //接続情報を使ってコネクションを生成します。
            using (SqlConnection conn = new SqlConnection(builder.ConnectionString))
            {
                //SQL文とコネクションを設定します。
                using (SqlCommand cmd = new SqlCommand("SELECT * FROM Person.Address WHERE city LIKE @city", conn))
                {
                    //パラメータの作成
                    SqlParameter prmtr = new SqlParameter();
                    //パラメータ名は@を除いた名前を指定します。
                    prmtr.ParameterName = "city";
                    //パラメータの値を設定します。
                    prmtr.Value = "D%";
                    //パラメータをコマンドに追加します。
                    cmd.Parameters.Add(prmtr);
                    //SQL Serverへの橋渡しのアダプターを設定します。
                    SqlDataAdapter sda = new SqlDataAdapter();
                    //SELECTコマンドを設定します。
                    sda.SelectCommand = cmd;
                    //SELECTの実行及びフェッチ
                    sda.Fill(dt);
                    //グリッドに表示します。
                    dataGridView1.DataSource = dt;
                }
            }
        }
    }
}

        

VB.NET

'SQL Serverなのでこれを設定します。
Imports System.Data.SqlClient

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim dt As DataTable = New DataTable()
        'SQL Serverへの接続情報の設定をします。
        Dim builder As SqlConnectionStringBuilder = New SqlConnectionStringBuilder()
        'ここではWindows認証を使うに設定します。
        builder.IntegratedSecurity = True
        builder.InitialCatalog = "AdventureWorks2008"
        'インスタンス名を設定します。
        builder.DataSource = ".\SQLExpress"
        '接続情報を使ってコネクションを生成します。
        Using conn As New SqlConnection(builder.ConnectionString)
            'SQL文とコネクションを設定します。
            Using cmd As New SqlCommand("SELECT * FROM Person.Address WHERE city LIKE @city", conn)
                'パラメータの作成
                Dim prmtr As SqlParameter = New SqlParameter()
                'パラメータ名は@を除いた名前を指定します。
                prmtr.ParameterName = "city"
                'パラメータの値を設定します。
                prmtr.Value = "D%"
                'パラメータをコマンドに追加します。
                cmd.Parameters.Add(prmtr)
                'SQL Serverへの橋渡しのアダプターを設定します。
                Dim sda As SqlDataAdapter = New SqlDataAdapter()
                'SELECTコマンドを設定します。
                sda.SelectCommand = cmd
                'SELECTの実行及びフェッチ
                sda.Fill(dt)
                'グリッドに表示します。
                DataGridView1.DataSource = dt
            End Using
        End Using
    End Sub
End Class
        








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

投稿日時評価コメント