作成日 2015.03.05
最終更新日 2015.03.05
概要
PostgreSQLデータベース・サーバのための、.NET データ・プロバイダNpgsqlのドキュメント(2014年7月25日・13改訂版)の和訳です。
旧版ドキュメント(外部サイト)
の和訳は存在しましたが、現行版のドキュメントのものは見つからなかったので和訳しました。
PostgreSQLとC#の両方を学ぶための資料集めの一環としての作成しています。
原文
npgsqlマニュアル(2014年7月25日・13改訂版)(外部サイト)
公式ページのドキュメントです。英語で書かれています。
問合せでパラメータを使用する。
Using parameters in a query
パラメータは、実行時に、あなたが、SQL問合せに動的に挿入できます。一般的に言って、結合のパラメータは、あなたのクライアント・コードの中で、 動的にSQL文を構築するために最も良い方法です。基本的な文字列の連結のような、他の方法は、あまり強健ではなく、 SQLインジェクション攻撃に脆弱になります。あなたのSQL問合せ文字列にパラメータを追加するには、 パラメータの名前に「:」で接頭辞を付けます。 下記の例では、value1という名前のパラメータを使用します。(「:value1」を参照してください)。
using System;
using System.Data;
using Npgsql;
public static class NpgsqlUserManual
{
public static void Main(String[] args)
{
using(NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=joe;Password=secret;Database=joedata;"))
{
conn.Open();
// Declare the parameter in the query string
// 問合せ文字列でパラメータを宣言します
using(NpgsqlCommand command = new NpgsqlCommand("select * from tablea where column1 = :value1", conn))
{
// Now add the parameter to the parameter collection of the command specifying its type.
//今、その型を指定しているコマンドのパラメータ・コレクションに、パラメータを追加します。
command.Parameters.Add(new NpgsqlParameter("value1", NpgsqlDbType.Integer));
// Now, add a value to it and later execute the command as usual.
// 今、それに値を追加し、いつもの通り、後でコマンドを実行します。
command.Parameters[0].Value = 4;
using(NpgsqlDataReader dr = command.ExecuteReader())
{
while(dr.Read())
{
for (i = 0; i < dr.FieldCount; i++)
{
Console.Write("{0} \t", dr[i]);
}
Console.WriteLine();
}
}
}
}
}
}
また、NpgsqlParamenterとNpgsqlParamenterCollectionオブジェクトを使用しているサーバに、あなたは、パラメータ化された問合せを送信することができます。 このコードは、「tablea」と呼ばれるテーブルと「column1」という名前の少なくとも1つの列を持つint4型を想定します。