スポンサーリンク

【C#】SQL Serverでデータベースにデータ編集(update)する方法。

C#
スポンサーリンク

今回の記事はC#を使ってSQL Serverのデータテーブルにレコードを編集(データを編集)するupdate(アップデート)文の書き方について解説いたします。インジェクション対策もできている文なので初心者の方も是非参考にしてみてください。

SQL Serverのデータテーブルのレコードを編集するinsert文と削除するdelete文に関しては下記記事を参考にしてください。

【C#】SQL Serverでデータベースにデータ追加(insert)する方法。

【C#】SQL Serverでデータベースにデータ削除(delete)する方法。

スポンサーリンク

C#でSQLパッケージをインストール

nugetのパッケージ管理より「sqlclient」をインストールします。VisualStudioのツールより「nuget管理」などからインストールしてください。

C#でSQL Serverに接続

データベースのデータを編集する際にはまず、データベースとの接続が必要です。データベースとの接続に関してはプログラムが起動時に常に確保しておくことはセキュリティ的に良くないのでその都度接続するようにプログラムを考える必要があります。

まずは下記にてデータベースに接続してみましょう。

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = ???.???.???.???";    // 接続先IP
builder.UserID = "接続ユーザ";              // 接続ユーザ名
builder.Password = "接続パスワード";         // 接続パスワード
builder.InitialCatalog = "データベース名";   // 接続するデータベース

//DB接続
try 
{
using (var connection = new SqlConnection(builder.ConnectionString))
    {
    using (SqlCommand command = new SqlCommand(SqlWord, connection))
         {
          Console.WriteLine("接続成功");
          }
     }
} 
catch
{
    Console.WriteLine("接続失敗");
}

これで接続は完了です。次にデータ追加を行なっていきます。

C#でSQL Serverにデータ編集(update)

UPDATE文は下記のように記載します。

string SqlWord = "UPDATE [テーブル名] SET [指定のカラム名] = [編集するデータ];";

これを実際にサンプルデータを入れると仮定した場合下記のようになります。

string SqlWord = "UPDATE [テーブル名] SET Key = 002,Val1 = 4444,Val2 = 9999;";
//上記のINSERT文は下記のようなテーブルにデータを入れる例
//|key|Val1|Val2|
//|001|1111|1112|
//|002|2221|2222|

↓実行すると

//|key|Val1|Val2|
//|001|1111|1112|
//|002|4444|9999|

これにSQLインジェクション対策を施すと下記のようになります。

string SqlWord = "UPDATE [テーブル名] SET Key = @Key,Val1 = @Val1,Val2 = @Val2;";
using (SqlCommand command = new SqlCommand(SqlWord, connection))
{
command.Parameters.AddWithValue("@Key", "002");
command.Parameters.AddWithValue("@Val1", "4444");
command.Parameters.AddWithValue("@Val2", "9999");
}

では上記を加えて一通りの処理を下記のように追加します。

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = ???.???.???.???";    // 接続先IP
builder.UserID = "接続ユーザ";              // 接続ユーザ名
builder.Password = "接続パスワード";         // 接続パスワード
builder.InitialCatalog = "データベース名";   // 接続するデータベース

//検索文作成
string SqlWord = "UPDATE [テーブル名] SET Key = @Key,Val1 = @Val1,Val2 = @Val2;";

//DB接続
try 
{
using (var connection = new SqlConnection(builder.ConnectionString))
    {
    using (SqlCommand command = new SqlCommand(SqlWord, connection))
         {
          command.Parameters.AddWithValue("@Key", "002");
          command.Parameters.AddWithValue("@Val1", "4444");
          command.Parameters.AddWithValue("@Val2", "9999");
          //実行
          command.ExecuteNonQuery();
          }
     }
} 
catch
{
    Console.WriteLine("接続失敗");
}

上記のコードで指定のデータベースのテーブルのレコードを編集することができます。インジェクション対策に関してもこちらで問題なく実装できています。

では、今回の記事は以上です。他にもC#間連の記事を記載しているので気になる方は是非参考にしてみてください。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

C#
スポンサーリンク
スポンサーリンク

コメント

  1. […] 「【C#】SQL Serverでデータベースにデータ編集(update)する方法。」 […]

  2. […] 「【C#】SQL Serverでデータベースにデータ編集(update)する方法。」 […]

タイトルとURLをコピーしました