ホームページ  >  記事  >  バックエンド開発  >  SqlParameter を使用した C# でのパラメーター化されたクエリ

SqlParameter を使用した C# でのパラメーター化されたクエリ

WBOY
WBOYオリジナル
2024-02-18 22:02:07422ブラウズ

SqlParameter を使用した C# でのパラメーター化されたクエリ

C における SqlParameter の役割と使用法

#C# 開発では、データベースとの対話は一般的なタスクの 1 つです。データのセキュリティと有効性を確保するために、多くの場合、パラメーター化されたクエリを使用して SQL インジェクション攻撃を防ぐ必要があります。 SqlParameter は、パラメーター化されたクエリの構築に使用される C# のクラスで、データベース クエリのパラメーターを安全かつ便利に処理する方法を提供します。

SqlParameter の役割
SqlParameter クラスは、主に SQL ステートメントにパラメーターを追加するために使用されます。

  1. SQL インジェクション攻撃の防止: SqlParameter を使用することで、事前にパラメーター値をエスケープし、データベース クエリの実行時にパラメーター値が変更されないようにできます。 SQL ステートメントの一部として。
  2. パフォーマンスの向上: データベース クエリでは、通常、パフォーマンスを向上させるためにクエリ プランがクエリをキャッシュします。 SqlParameter を使用する場合、同じクエリ ステートメントを 1 回コンパイルするだけで済み、その後は繰り返し使用できます。
  3. さまざまなデータ型とサイズのサポート: SqlParameter は、文字列、整数、日付などのさまざまな一般的なデータ型をサポートし、必要に応じてパラメーターのサイズ、精度、小数点以下の桁数を設定できます。

SqlParameter の使用法
以下では、例を使用して、SqlParameter を使用してパラメーター化されたクエリを構築する方法を示します。

従業員 ID、名前、給与情報を含む「Employees」という名前のテーブルがあるとします。給与が指定された金額を超える従業員情報をクエリする必要があります。以下は、SqlParameter を使用したコード例です。

string queryString = "SELECT EmployeeID, FirstName, LastName FROM Employees WHERE Salary > @salary";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(queryString, connection);
    command.Parameters.Add("@salary", SqlDbType.Decimal).Value = 5000; // 设置参数名称、类型和值

    connection.Open();
    SqlDataReader reader = command.ExecuteReader();

    while (reader.Read())
    {
        int employeeId = (int)reader["EmployeeID"];
        string firstName = reader["FirstName"].ToString();
        string lastName = reader["LastName"].ToString();

        Console.WriteLine($"Employee ID: {employeeId}, Name: {firstName} {lastName}");
    }

    reader.Close();
}

上記の例では、最初にパラメーター名「@salary」を含むクエリ文字列を作成します。次に、SqlConnection と SqlCommand を使用してデータベース接続とクエリ コマンド オブジェクトを作成しました。

次に、command.Parameters.Add メソッドを呼び出して、クエリ コマンドにパラメータを追加します。ここでは、パラメータの名前、タイプ、値を指定します。この例では、パラメータの型として SqlDbType.Decimal を使用し、パラメータ値を 5000 に設定します。

最後に、データベース接続を開き、クエリ コマンドを実行します。 command.ExecuteReader を呼び出してクエリ結果を取得し、SqlDataReader を使用して結果を 1 行ずつ読み取ります。ループでは、列名を通じて各従業員の ID と名前を取得し、コンソールに出力します。

概要
SqlParameter を使用すると、パラメータ化されたクエリを効果的に構築できるため、データベース クエリのセキュリティとパフォーマンスが向上します。パラメーターの名前、タイプ、値を設定することで、SQL ステートメントにパラメーターを簡単に追加し、潜在的な SQL インジェクション攻撃を防ぐことができます。この記事が、C# における SqlParameter の役割と使用法を理解するのに役立つことを願っています。

以上がSqlParameter を使用した C# でのパラメーター化されたクエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。