MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
C Sharpとデータベース - CRUDの実行のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
C Sharpとデータベース - CRUDの実行
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == C#でSQL Serverに対して変更処理(INSERT, UPDATE, DELETE)を実行する方法をまとめる。<br><br> == 1行のみ実行 == 単一テーブルにしか影響しないようなSQLは1行だけ実行することになる。<br> このようなクエリを実行する場合、トランザクションを考慮せずそのままExecuteNonQuery()メソッドを実行する方法が簡単である。<br> <source lang="c#"> using System; using System.Configuration; using System.Data.SqlClient; public void Insert1(string id, string password, string role) { // 接続文字列の取得 var connectionString = ConfigurationManager.ConnectionStrings["sqlsvr"].ConnectionString; using (var connection = new SqlConnection(connectionString)) using (var command = connection.CreateCommand()) { try { // データベースの接続開始 connection.Open(); // SQLの準備 command.CommandText = @"INSERT INTO T_USER (ID, PASSWORD, ROLE_NAME) VALUES (@ID, @PASSWORD, @ROLE_NAME)"; command.Parameters.Add(new SqlParameter("@ID", id)); command.Parameters.Add(new SqlParameter("@PASSWORD", password)); command.Parameters.Add(new SqlParameter("@ROLE_NAME", role)); // SQLの実行 command.ExecuteNonQuery(); } catch (Exception exception) { Console.WriteLine(exception.Message); throw; } finally { // データベースの接続終了 connection.Close(); } } } </source> <br> == トランザクション処理 == 複数のテーブルにINSERT / UPDATE / DELETEを行う場合、トランザクションを利用する場合が多い。<br> <source lang="c#"> using System; using System.Configuration; using System.Data.SqlClient; public void Insert2(string id, string password, string phone, string address) { // 接続文字列の取得 var connectionString = ConfigurationManager.ConnectionStrings["sqlsvr"].ConnectionString; using (var connection = new SqlConnection(connectionString)) { try { // データベースの接続開始 connection.Open(); using (var transaction = connection.BeginTransaction()) using (var command = new SqlCommand() { Connection = connection, Transaction = transaction }) { try { // 親テーブルを挿入するSQLの準備 command.CommandText = @"INSERT INTO T_USER (ID, PASSWORD) VALUES (@ID, @PASSWORD)"; command.Parameters.Add(new SqlParameter("@ID", id)); command.Parameters.Add(new SqlParameter("@PASSWORD", password)); // 親テーブルを挿入するSQLの実行 command.ExecuteNonQuery(); // 子テーブルを挿入するSQLの準備 command.CommandText = @"INSERT INTO T_USER_EXT (ID, PHONE, ADDRESS) VALUES (@ID, @PHONE, @ADDRESS)"; ////command.Parameters.Add(new SqlParameter("@ID", id)); // <- 上で既に @ID を追加済みのため再投入は不要。 command.Parameters.Add(new SqlParameter("@PHONE", phone)); command.Parameters.Add(new SqlParameter("@ADDRESS", address)); // 子テーブルを挿入するSQLの実行 command.ExecuteNonQuery(); // コミット transaction.Commit(); } catch { // ロールバック transaction.Rollback(); throw; } } } catch (Exception exception) { Console.WriteLine(exception.Message); throw; } finally { // データベースの接続終了 connection.Close(); } } } </source> <br><br> == その他のクエリ == '''INSERT''' INSERT INTO T_USER(ID, PASSWORD) VALUES(@ID, @PASSWORD); '''UPDATE''' UPDATE T_USER SET PASSWORD=@PASSWORD WHERE ID=@ID; '''DELETE''' DELETE FROM T_USER WHERE ID=@ID; <br><br> [[カテゴリ:C_Sharp]]
C Sharpとデータベース - CRUDの実行
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse