C#を使用してデータベース操作を行う際、SQL Serverは広く使用されているデータベース管理システムの一つです。特に、データの更新(UPDATE)、挿入(INSERT)、削除(DELETE)といった基本的な操作は、多くのアプリケーションで必要不可欠です。この記事では、C#からSQL Serverに接続し、これらの操作を直接実行する方法を、初心者にも分かりやすく解説します。
目次
SQL Serverへの接続と基本的な操作
C#でSQL Serverに接続し、UPDATE、INSERT、DELETE文を実行するための基本的な手順は以下の通りです:
- 接続文字列の準備
- データベース接続の確立
- SQLコマンドの作成
- SQLの実行
- 結果の確認
以下に、これらの手順を実装した基本的なコード例を示します:
using System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "Data Source=YourServerName;Initial Catalog=YourDatabaseName;User ID=YourUsername;Password=YourPassword;";
try
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("データベースに接続しました。");
// INSERT文の例
string insertSql = "INSERT INTO Employees (FirstName, LastName) VALUES (@FirstName, @LastName)";
using (SqlCommand insertCommand = new SqlCommand(insertSql, connection))
{
insertCommand.Parameters.AddWithValue("@FirstName", "John");
insertCommand.Parameters.AddWithValue("@LastName", "Doe");
int insertedRows = insertCommand.ExecuteNonQuery();
Console.WriteLine($"{insertedRows}行挿入されました。");
}
// UPDATE文の例
string updateSql = "UPDATE Employees SET FirstName = @NewFirstName WHERE LastName = @LastName";
using (SqlCommand updateCommand = new SqlCommand(updateSql, connection))
{
updateCommand.Parameters.AddWithValue("@NewFirstName", "Jane");
updateCommand.Parameters.AddWithValue("@LastName", "Doe");
int updatedRows = updateCommand.ExecuteNonQuery();
Console.WriteLine($"{updatedRows}行更新されました。");
}
// DELETE文の例
string deleteSql = "DELETE FROM Employees WHERE LastName = @LastName";
using (SqlCommand deleteCommand = new SqlCommand(deleteSql, connection))
{
deleteCommand.Parameters.AddWithValue("@LastName", "Doe");
int deletedRows = deleteCommand.ExecuteNonQuery();
Console.WriteLine($"{deletedRows}行削除されました。");
}
}
}
catch (SqlException e)
{
Console.WriteLine("SQLエラー: " + e.Message);
}
catch (Exception e)
{
Console.WriteLine("エラー: " + e.Message);
}
}
}
コードの解説
- 接続文字列: SQL Serverに接続するための情報を含む文字列です。実際の環境に合わせて変更してください。
- SqlConnection:
using
ステートメントで囲むことで、接続が自動的にクローズされます。 - SqlCommand: 各SQL文(INSERT、UPDATE、DELETE)に対して別々のSqlCommandオブジェクトを作成します。
- パラメータの使用: SQL文にパラメータを使用することで、SQLインジェクション攻撃を防ぎます。
- ExecuteNonQuery(): INSERT、UPDATE、DELETEなどの結果セットを返さないSQL文を実行するために使用します。
- 影響を受けた行数:
ExecuteNonQuery()
メソッドは、影響を受けた行数を返します。
注意点
- 実際のアプリケーションでは、接続文字列を設定ファイルなどで管理することをおすすめします。
- 大量のデータを扱う場合は、バッチ処理や一括操作の使用を検討してください。
- トランザクションを使用することで、複数の操作をまとめて実行し、データの一貫性を保つことができます。
まとめ
C#でSQL Serverに接続してUPDATE、INSERT、DELETE文を直接実行する基本的な手順は以下の通りです:
- 適切な接続文字列を準備する
- SqlConnectionオブジェクトを作成し、接続を開く
- 各操作に対してSqlCommandオブジェクトを作成する
- パラメータを使用してSQL文を安全に構築する
- ExecuteNonQuery()メソッドを使用してSQL文を実行する
- 影響を受けた行数を確認する
これらの基本的な操作を理解し、適切に実装することで、C#アプリケーションからSQL Serverデータベースを効果的に操作できるようになります。データの挿入、更新、削除といった基本的なCRUD操作を通じて、より複雑なデータベース処理の基礎を築くことができるでしょう。
コメント