C# での SQL 挿入クエリ

Muhammad Maisam Abbas 2024年2月16日
  1. C# の単純なクエリメソッドを使用した SQL 挿入
  2. C# のパラメーター化されたクエリメソッドを使用した SQL 挿入
C# での SQL 挿入クエリ

このチュートリアルでは、C# でデータベースにレコードを挿入する方法について説明します。

C# の単純なクエリメソッドを使用した SQL 挿入

単純なクエリメソッドは、C# で SQL の insert クエリを使用してデータベーステーブルにデータを挿入できます。この方法は単純で実装が簡単ですが、安全ではありません。このメソッドでは、コードから SQL インジェクションを防ぐことはできません。次のコード例は、C# の単純なクエリメソッドを使用してデータベーステーブルにデータを入力する方法を示しています。

using System;
using System.Data.SqlClient;

namespace sql_insert {
  class Program {
    static void Main(string[] args) {
      string connectionString =
          "Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True";
      SqlConnection connection = new SqlConnection(@connectionString);
      string query = "INSERT INTO Person (Name,Salary) VALUES('Max','$1200')";
      SqlCommand command = new SqlCommand(query, connection);
      try {
        connection.Open();
        command.ExecuteNonQuery();
        Console.WriteLine("Records Inserted Successfully");
      } catch (SqlException e) {
        Console.WriteLine("Error Generated. Details: " + e.ToString());
      } finally {
        connection.Close();
      }
    }
  }
}

出力:

Records Inserted Successfully

上記のコードは、C# の単純なクエリメソッドを使用して、データベースの Person テーブルにデータを挿入します。

SqlConnection クラスは、データベースとの接続を作成します。接続文字列をパラメータとして受け取ります。

SqlCommand クラスは、次のような SQL コマンドを作成します。SQL Server データベースに対して実行されます。SqlConnection オブジェクトと SQL クエリをパラメータとして受け取ります。

connection.open() 関数データベースとの接続を開いてクエリを実行するために使用されます。データベースへの接続を開かずにクエリを実行することはできません。

最後に、command.ExecuteNonQuery() 関数は、挿入クエリを実行するために使用されます。command.ExecuteNonQuery() 関数は、クエリの影響を受ける行数を返します。エラーが発生した場合、command.ExecuteNonQuery() 関数は -1 を返します。

クエリを実行した後、connection.Close() 関数

C# のパラメーター化されたクエリメソッドを使用した SQL 挿入

パラメータ化されたクエリメソッドは、C# のパラメータで SQL insert クエリを使用してデータベーステーブルにデータを挿入するために使用されます。挿入クエリのフィールドに代替パラメーターを指定してから、それらの代替パラメーターにデータを入力します。この方法は、SQL インジェクションからコードを保護するために推奨されます。次のコード例は、C# のパラメーター化されたクエリメソッドを使用してデータベーステーブルにデータを入力する方法を示しています。

using System;
using System.Data.SqlClient;

namespace sql_insert {
  class Program {
    static void Main(string[] args) {
      string connectionString =
          "Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True";
      SqlConnection connection = new SqlConnection(@connectionString);
      string query = "INSERT INTO Products (Name, Salary) VALUES(@Name, @Salary)";
      SqlCommand command = new SqlCommand(query, connection);

      command.Parameters.AddWithValue("@Name", "Max");
      command.Parameters.AddWithValue("@Salary", "$1200");

      try {
        connection.Open();
        command.ExecuteNonQuery();
        Console.WriteLine("Records Inserted Successfully");
      } catch (SqlException e) {
        Console.WriteLine("Error Generated. Details: " + e.ToString());
      } finally {
        connection.Close();
      }
    }
  }
}

出力:

Records Inserted Successfully

上記のコードは、C# のパラメーター化されたクエリメソッドを使用して、データベースの Person テーブルにデータを挿入します。残りのコードは、前の例と非常によく似ています。唯一の違いは、今回は insert クエリ内に値を書き込まないことです。command.Parameters.AddWithValue() 関数を使用して値を個別に入力します。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Csharp Database