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 |
| 投稿日時 | 評価 | コメント |
|---|