. C#】SQL Serverに接続してUPDATE・INSERT・DELETE文を直接実行する
C#】SQL Serverに接続してUPDATE・INSERT・DELETE文を直接実行する
C#】SQL Serverに接続してUPDATE・INSERT・DELETE文を直接実行する

【C#】SQL Serverに接続してUPDATE・INSERT・DELETE文を直接実行する

C#でSQL Server (LocalDB)に接続する方法についてまとめました。操作はVisual Studioだけで完結するので、別途SQL Serverをインストールする必要はありません。LocalDBとは?無償で使えるSQL Ser.

hirahira.blog

環境

  • Visual Studio 2022
  • .NET 8

プログラム全文

※.NET 6以降の最上位レベルのステートメントを使っています。下記コードをコンソールアプリの Program.cs に貼り付けるだけで実行可能です。

using Microsoft.Data.SqlClient; // 接続文字列 var connectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=testdb;Integrated Security=True;Connect Timeout=30;Encrypt=False;Trust Server Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False"; Update(); Insert(); Delete(); Console.WriteLine("処理が完了しました!"); // Update文を実行するメソッド void Update() < // IDが2のレコードのAgeを50に更新する var updateQuery = "UPDATE Test SET Age = 50 WHERE using (var connection = new SqlConnection(connectionString)) using (var command = new SqlCommand(updateQuery, connection)) < connection.Open(); command.ExecuteNonQuery(); >> // Insert文を実行するメソッド void Insert() < // パラメーターで中身を指定したレコードを追加 var insertQuery = @"INSERT INTO Test(Id, Name, Age, Birthday) VALUES (@id, @name, @age, @birthday)"; var name = "Nancy"; var age = "28"; var birthday = "1993/5/5"; using (var connection = new SqlConnection(connectionString)) using (var command = new SqlCommand(insertQuery, connection)) < connection.Open(); // パラメーターの追加 command.Parameters.AddWithValue("@id", 4); command.Parameters.AddWithValue("@name", name); command.Parameters.AddWithValue("@age", age); command.Parameters.AddWithValue("@birthday", birthday); command.ExecuteNonQuery(); >> // Delete文を実行するメソッド void Delete() < // Idが3のレコードを削除 var deleteQuery = "DELETE FROM Test WHERE using (var connection = new SqlConnection(connectionString)) using (var command = new SqlCommand(deleteQuery, connection)) < connection.Open(); command.ExecuteNonQuery(); >>

プログラムの解説

Update void Update() < // IDが2のレコードのAgeを50に更新する var updateQuery = "UPDATE Test SET Age = 50 WHERE using (var connection = new SqlConnection(connectionString)) using (var command = new SqlCommand(updateQuery, connection)) < connection.Open(); command.ExecuteNonQuery(); >>

SqlCommand クラスの第1引数に実行するクエリを渡し、 ExecuteNonQuery メソッドを呼び出すことでSQLが実行されます。

Insert void Insert() < // パラメーターで中身を指定したレコードを追加 var insertQuery = @"INSERT INTO Test(Id, Name, Age, Birthday) VALUES (@id, @name, @age, @birthday)"; var name = "Nancy"; var age = "28"; var birthday = "1993/5/5"; using (var connection = new SqlConnection(connectionString)) using (var command = new SqlCommand(insertQuery, connection)) < connection.Open(); // パラメーターの追加 command.Parameters.AddWithValue("@id", 4); command.Parameters.AddWithValue("@name", name); command.Parameters.AddWithValue("@age", age); command.Parameters.AddWithValue("@birthday", birthday); command.ExecuteNonQuery(); >>

command.Parameters.AddWithValue("@パラメータ名", 代入したい値) と書くことでパラメータに値が代入されます。

Delete void Delete() < // Idが3のレコードを削除 var deleteQuery = "DELETE FROM Test WHERE using (var connection = new SqlConnection(connectionString)) using (var command = new SqlCommand(deleteQuery, connection)) < connection.Open(); command.ExecuteNonQuery(); >>

参考:非同期処理による書き方

using Microsoft.Data.SqlClient; // 接続文字列 var connectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=testdb;Integrated Security=True;Connect Timeout=30;Encrypt=False;Trust Server Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False"; await UpdateAsync(); await InsertAsync(); await DeleteAsync(); Console.WriteLine("処理が完了しました!"); // Update文を実行する非同期メソッド async Task UpdateAsync() < // IDが2のレコードのAgeを50に更新する var updateQuery = "UPDATE Test SET Age = 50 WHERE using (var connection = new SqlConnection(connectionString)) using (var command = new SqlCommand(updateQuery, connection)) < await connection.OpenAsync(); await command.ExecuteNonQueryAsync(); >> // Insert文を実行する非同期メソッド async Task InsertAsync() < // パラメーターで中身を指定したレコードを追加 var insertQuery = @"INSERT INTO Test(Id, Name, Age, Birthday) VALUES (@id, @name, @age, @birthday)"; var name = "Nancy"; var age = "28"; var birthday = "1993/5/5"; using (var connection = new SqlConnection(connectionString)) using (var command = new SqlCommand(insertQuery, connection)) < await connection.OpenAsync(); // パラメーターの追加 command.Parameters.AddWithValue("@id", 4); command.Parameters.AddWithValue("@name", name); command.Parameters.AddWithValue("@age", age); command.Parameters.AddWithValue("@birthday", birthday); await command.ExecuteNonQueryAsync(); >> // Delete文を実行する非同期メソッド async Task DeleteAsync() < // Idが3のレコードを削除 var deleteQuery = "DELETE FROM Test WHERE using (var connection = new SqlConnection(connectionString)) using (var command = new SqlCommand(deleteQuery, connection)) < await connection.OpenAsync(); await command.ExecuteNonQueryAsync(); >>

参考記事

コンソールアプリではなく、ASP.NET Core MVCアプリ上でSqlClientを用いたDB操作を行う方法については以下の記事を参照してください。

【ASP.NET Core MVC】SqlClientを使って直接SQLを実行する

Microsoft.Data.SqlClient(ADO.NETの仕組み)を使って、SQLを直接実行するMVCアプリの作成方法を解説します。DBはSQL Server (LocalDB) を使用しています。Entity Framework .

hirahira.blog

Entity Framework Coreを使ったSQL Serverのデータ操作方法を知りたい場合は以下の記事を参照してください。

【C#】Entity Framework CoreでSQL Serverを操作する

Entity Framework Core (EF Core) を使ってSQL Server (LocalDB) に接続し、DBを生成したりCRUD操作をする方法を解説します。※直接SQLでデータを操作する方法(ADO.NET)については以.

hirahira.blog

おすすめ書籍

¥2,851 (2025/11/06 16:27時点 | Amazon調べ)

関連記事

【C#】Entity Framework Coreを使ってSQLiteを操作する

Entity Framework Core (EF Core) を使って、SQLiteからデータを取得したり更新する方法を解説します。(参考)EF Coreを使わずにデータを取得する方法についてはこちらSQLiteはインストール不要なので、.

【C#】MySQLに接続して直接SQLを実行する

MySqlConnectorを使ってC#からMySQLに接続し、データの登録や取得をする方法について解説します。※Entity Framework Core を使ってMySQLを操作する方法については下記の記事をご参照ください。環境Visu.

【C#】SQL Serverに接続してSELECT文を実行する

C#でSQL Server (LocalDB)に接続する方法についてまとめました。操作はVisual Studioだけで完結するので、別途SQL Serverをインストールする必要はありません。LocalDBとは?無償で使えるSQL Ser.

【C#】SQL Serverに接続してSELECT文を実行する 【Visual Studio】.NET Framework 4.8 をインストールして既存のプロジェクトに適用する

コメント

コメントをどうぞ コメントをキャンセル

プロフィール

ひらひら

最近の投稿
  • ASP.NET CoreとReactでTodoアプリを作る【.NET 10対応】
  • Udemy個人向け定額プランを4ヶ月使ってみた正直な感想
  • C#初心者におすすめのUdemy講座(Webアプリ開発編)【2026年版】
📎📎📎📎📎📎📎📎📎📎