Accessデータベースでは、SQL文内でパラメータの所には?だけで指定します。
複数のパラメータを利用する時でも全て?です。
.Netでは、Accessデータベース用のパラメータ変数の型は、OleDbParameter型です。
基本はその型の変数に、ParameterNameプロパティとValueプロパティを指定して、SQLコマンドに登録することで利用可能です。
ただパラメータはSQL文内で全て?なので、SLQコマンドに登録されるパラメータの順番に対応していきます。
C#
//Accessファイルなのでこれを設定します。 using System.Data.OleDb; namespace ADONET_AccessWithParameters { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); //Accessへの接続情報の設定をします。 OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder(); //Access2007形式のファイルなのでこれを設定します。 builder.Provider = "Microsoft.ACE.OLEDB.12.0"; //Accessファイルへのパスを設定します。 builder.DataSource = "G:\\Database1.accdb"; //接続情報を使ってコネクションを生成します。 using (OleDbConnection conn = new OleDbConnection(builder.ConnectionString)) { //SQL文とコネクションを設定します。 using (OleDbCommand cmd = new OleDbCommand("SELECT * FROM T1 WHERE price BETWEEN ? AND ?", conn)) { //パラメータの作成 OleDbParameter prmtr1 = new OleDbParameter(); OleDbParameter prmtr2 = new OleDbParameter(); //パラメータ名は好きな名前を指定します。 prmtr1.ParameterName = "1"; prmtr2.ParameterName = "2"; //パラメータの値を設定します。 prmtr1.Value = "100000"; prmtr2.Value = "150000"; //パラメータをコマンドに追加します。 cmd.Parameters.Add(prmtr1); cmd.Parameters.Add(prmtr2); //Accessファイルへの橋渡しのアダプターを設定します。 OleDbDataAdapter odda = new OleDbDataAdapter(); //SELECTコマンドを設定します。 odda.SelectCommand = cmd; //SELECTの実行及びフェッチ odda.Fill(dt); //グリッドに表示します。 dataGridView1.DataSource = dt; } } } } }
VB.NET
'Accessファイルなのでこれを設定します。 Imports System.Data.OleDb Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim dt As DataTable = New DataTable() 'Accessへの接続情報の設定をします。 Dim builder As OleDbConnectionStringBuilder = New OleDbConnectionStringBuilder() 'Access2007形式のファイルなのでこれを設定します。 builder.Provider = "Microsoft.ACE.OLEDB.12.0" 'Accessファイルへのパスを設定します。 builder.DataSource = "G:\\Database1.accdb" '接続情報を使ってコネクションを生成します。 Using conn As New OleDbConnection(builder.ConnectionString) 'SQL文とコネクションを設定します。 Using cmd As New OleDbCommand("SELECT * FROM T1 WHERE price BETWEEN ? AND ?", conn) 'パラメータの作成 Dim prmtr1 As OleDbParameter = New OleDbParameter() Dim prmtr2 As OleDbParameter = New OleDbParameter() 'パラメータ名は好きな名前を指定します。 prmtr1.ParameterName = "1" prmtr2.ParameterName = "2" 'パラメータの値を設定します。 prmtr1.Value = "100000" prmtr2.Value = "150000" 'パラメータをコマンドに追加します。 cmd.Parameters.Add(prmtr1) cmd.Parameters.Add(prmtr2) 'Accessファイルへの橋渡しのアダプターを設定します。 Dim odda As OleDbDataAdapter = New OleDbDataAdapter() 'SELECTコマンドを設定します。 odda.SelectCommand = cmd 'SELECTの実行及びフェッチ odda.Fill(dt) 'グリッドに表示します。 DataGridView1.DataSource = dt End Using End Using End Sub End Class
良い | やや良い | 普通 | やや悪い | 悪い |
---|---|---|---|---|
1 | 1 | 0 | 0 | 0 |
投稿日時 | 評価 | コメント |
---|