ホームページ >データベース >mysql チュートリアル >パラメーター化されたクエリを使用して C# で SQL Server データベースからデータを取得する方法

パラメーター化されたクエリを使用して C# で SQL Server データベースからデータを取得する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-29 16:12:11898ブラウズ

How to Retrieve Data from a SQL Server Database in C# Using Parameterized Queries?

C# で SQL Server データベースからデータを取得する

C# で SQL Server データベースからデータを取得するには、SqlConnection を使用できます。 SqlCommand オブジェクトと SqlDataReader オブジェクト。これを実現する方法は次のとおりです:

  1. データベースへの接続を確立します:

    SqlConnection con = new SqlConnection("Data Source=.
    Initial Catalog=domain;
    Integrated Security=True");
    con.Open();
  2. SQLコマンドを作成するオブジェクト:

    SqlCommand cmd = new SqlCommand("Select * from tablename", con);
  3. Sql コマンドを実行:

    using (SqlDataReader reader = cmd.ExecuteReader())
    {
      // Iterate over the results and retrieve values
      while (reader.Read())
      {
     // Get values from the current row
      }
    }

ただし、コードはSQLクエリをパラメータ化していないため、質問に記載されている機能は機能しません。これにより、コードが SQL インジェクション攻撃に対して脆弱になります。これを修正するには、パラメータ化されたクエリを使用します。

cmd.CommandText = "select * from tablename where firstname = @firstName";
cmd.Parameters.AddWithValue("@firstName", textBox1.Text);

データベースからデータを取得し、ユーザー定義のオブジェクトを設定する、より完全なメソッドの例を次に示します。

public Person GetPerson(string firstName)
{
  var con = ConfigurationManager.ConnectionStrings["Yourconnection"].ToString();

  using (SqlConnection myConnection = new SqlConnection(con))
  {
    string oString = "Select * from Employees where FirstName=@fName";
    SqlCommand oCmd = new SqlCommand(oString, myConnection);
    oCmd.Parameters.AddWithValue("@Fname", fName);
    myConnection.Open();

    using (SqlDataReader oReader = oCmd.ExecuteReader())
    {
      while (oReader.Read())
      {
        Person matchingPerson = new Person
        {
          firstName = oReader["FirstName"].ToString(),
          lastName = oReader["LastName"].ToString(),
        };

        return matchingPerson;
      }
    }
  }

  return null; // If no person found
}

これを使用するにはメソッドを使用する場合は、firstName パラメーターを使用してこのメ​​ソッドを呼び出し、返された Person オブジェクトのプロパティをテキストボックスに入力できます。

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

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