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()
関数を使用して値を個別に入力します。
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